SlideShare una empresa de Scribd logo
1 de 32
Модуль 5.
Объектная модель MS Excel, объект Application
О чем мы узнаем

Объектная модель MS Excel

Методы объекта Application

Свойства объекта Application

События объекта Application
Цели программирования для Excel
• Автоматизация вычислений
• Автоматизация ввода и обработки информации
• Работа с базами данных – вывод, ввод, анализ,
  визуализация информации
• Анализ финансовой и другой информации
• Создание систем для организации
  автоматизированного ввода данных
• Математическое моделирование
ООП
Давайте вспомним основы!
   Классы: виды
   Объекты: представители
       атрибуты: характеристики
       методы: поведение
Иерархия объектов
Внешние объекты

                              QueryTable   Подключение к БД




     Анализ данных   PivotTable




                                  Chart    Визуализация
Объект Application
• Представляет все приложение Excel
• Находится на самом верхнем уровне объектной
  модели
• Для вызвать Excel из другого приложения, нужно
  создать объект Excel.Application
 • В меню Tools | References добавить ссылку на
   Microsoft Excel 14.0 Object Library

   Dim oExcel As New Excel.Application
   oExcel.Workbooks.Add
   oExcel.Visible = True
Объект Application
• Если вы работаете из уже
  запущенного Excel, объект Application
  уже доступен
• Равнозначные строки кода:
• Application.Workbooks.Add
• Workbooks.Add
Application: свойства
• Active...
 • ActiveCell, ActiveSheet, ActiveChart, ActivePrinter

 MsgBox ("В ячейке с именем " + _
 Application.ActiveCell.Address + _
 " хранится значение " + _
 Application.ActiveCell.Value)
 ActiveCell.Value = _
 InputBox("Введите новое значение для ячейки " + _
 ActiveCell.Address)
Application: свойства
• ScreenUpdating – обновление экрана
• AddIns
• AutoRecover
• Интервал автосохранения в минутах (1-120)
• Application.AutoRecover.Time = 5
• Calculation
• CalculationState
Application: свойства
• Cells
 • возвращает объект Range – все ячейки в
   активном листе активной книги
 • Item – свойство по умолчанию для объекта
   Range
 • Application.Cells(1, 2).Font.Bold = True
• Свойства Columns и Rows действуют очень
  похоже
 • Application.Columns(2).Font.Bold = True
 • Application.Rows(2).Font.Bold = True
Application: свойства
• Cursor
 • Application.Cursor = xlWait
 • MsgBox ("Cursor has changed")
 • Application.Cursor = xlDefault
• DataEntryMode
 • разрешается только вводить данные в
   разблокированные ячейки выбранного
   диапазона
• DecimalSeparator и ThousandsSeparator
 • Application.UseSystemSeparators = False
Application: свойства
• Dialogs
    • Application.Dialogs.Application…
•     DisplayAlerts
•     EnableEvents
•     ErrorCheckingOptions
•     FileDialog

      Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False
      Application.FileDialog(msoFileDialogOpen).Show
      Debug.Print Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
Application: свойства
• FileSearch
• Interactive
• International, LanguageSettings
• LibraryPath – путь к каталогу с
  надстройками
 • Office11Library
•       MoveAfterReturn
    •   Application.MoveAfterReturnDirection =
        xlToRight
Application: свойства
• Names – коллекция всех именованных
  диапазонов
 • метод Add()
• ODBCErrors и OLEDBErrors
 • Коллекции объектов ODBCError и OLEDBError
• OnWindow - имя процедуры, которая должна
   находиться в модуле уровня книги
 • вызывается всякий раз, когда пользователь
    переключился в окно Excel
  • Auto_Activate и Auto_Deactivate
Application: свойства
• Range – возвращает диапазон ячеек
• ReferenceStyle
• Application.ReferenceStyle = xlR1C1
• Selection
• Sheets и Worksheets
• TemplatesPath
• Application DataMicrosoftTemplates
Application: свойства
• ThisCell и ThisWorkbook
• Windows, Workbooks и Sheets
• WorkSheetFunction – использование в
  программе функций Excel напрямую
• Не прописывая в ячейку
Application: методы
• ActivateMicrosoftApp()
 • Word, Access, PowerPoint, Project, FoxPro,
   Schedule Plus
• AddCustomList() и DeleteCustomList()
 • объект Range как параметр
• Calculate(), CalculateFull(),
  CalculateFullRebuild()
 • Останов по вызову CheckAbort()
• ConvertFormula()
• DoubleClick()
Application: методы
• Evaluate() - по имени найти объект книги Excel и
  преобразовать его в объект или значения
 • Допустимые имена:
  • имена ячеек в стиле A1
   • возвращается объект Cell
  • имена диапазонов
   • возвращается объект Range
  • имена, определенные в макросе
   • названия переменных
  • ссылки на внешние книги
   • Evaluate("[Book1.xls]Sheet1!A5"))
Application: методы
• Evaluate можно вызвать и неявно
• имя объекта в квадратных скобках
• равнозначные строки :
 • [a1].Value = 25
 • Evaluate("A1").Value = 25
• чаще всего используется синтаксис с
  квадратными скобками
• самый простой и естественный метод
  обратиться к ячейке или диапазону
Application: методы
• GetOpenFilename()

 Filename = Application.GetOpenFilename()
 If Filename <> False Then
    Debug.Print Filename
 End If

• GetSaveAsFilename()
Application: методы
• GoTo() - выделяет и активизирует диапазон
 или ячейку или запускает на выполнение
 процедуру
    Application.Goto _
    Reference:=ActiveSheet.Range("H500"), _
    Scroll:=True
• Help()
• Intersect() - возвращает диапазон, общий
  для двух или более диапазонов
Application: методы
• OnKey() – назначение клавиш процедурам
    • Alt+M для процедуры Msg() из модуля
      Лист1
    • Application.OnKey "%{m}", "Лист1.Msg"
•     OnRepeat() и OnUndo()
•     RegisterXLL()
•     Repeat()
•     Run()
Application: методы
• SendKeys(Keys, Wait)
 • Keys:
  • {BS}
  • ~ (тильда) для Enter
  • {DEL}
  • SHIFT - + (знак плюс)
  • CTRL - ^ (крышка)
  • ALT - % (знак процента)
 • Wait : True или False
 • Application.SendKeys ("Сейчас закрою программу!")
Application: методы
• Union()
• Volatile()
• Wait()
  If Application.Wait(Now + TimeValue("0:00:5")) Then
     MsgBox "Пять секунд прошло"
  End If
• Quit()
• OnTime()
 • Application.OnTime TimeValue("17:00:00"),
     "my_Procedure"
Application: события
Основные шаги:
• Создаем новый модуль класса
• Добавляем в него объявление объекта Application
 • Public WithEvents obj_ExApp As Excel.Application
• Пишем обработчик нужного события
• Пишем процедуру связи объекта с реальным приложением

Dim obj_ExcelAppEv As New AppEvents
Sub EventsInit()
  Set obj_ExcelAppEv.obj_ExApp = Excel.Application
End Sub
Application: события
Подводим итоги
• Excel имеет весьма богатую объектную модель, в
  основе которой лежит объект Application
• Application имеет массу свойств, методов и
  событий, которые можно использовать для
  программного доступа к приложению
• Недостаточно написать обработчик события –
  нужно создать процедуру, привязывающую
  задекларированный объект Application к реально
  действующему приложению
Практика
Написать программу, которая выводит окно
сообщения каждый раз при создании новой
книги
Практика
Dim obj_ExcelAppEv As New AppEvents
Sub EventsInit()
 Set obj_ExcelAppEv.obj_ExApp = Excel.Application
End Sub


Public WithEvents obj_ExApp As Excel.Application
Private Sub obj_ExApp_NewWorkbook(ByVal Wb As Workbook)
  'Выполняется при создании новой книги
  MsgBox "Вы создали новую книгу"
End Sub
Вопросы?
Контрольные вопросы
• Какие объекты Excel, кроме Application, вы
  знаете?
• Какие свойства позволяют получить
  доступ к активной ячейке, принтеру, и т.д?
• Как отправить в приложение нажатия
  клавиш Alt+F, X для выхода из
  программы?
• Как получить возможность создавать
  обработчики событий для Application?

Más contenido relacionado

Similar a Vba 05

Reactive Extensions
Reactive ExtensionsReactive Extensions
Reactive ExtensionsGetDev.NET
 
Automation Functional Testing in Agile Projects
Automation Functional Testing in Agile ProjectsAutomation Functional Testing in Agile Projects
Automation Functional Testing in Agile ProjectsAndrey Rebrov
 
Новости Global summit 2015
Новости Global summit 2015Новости Global summit 2015
Новости Global summit 2015Timur Safin
 
HasValue and AsyncFilter
HasValue and AsyncFilterHasValue and AsyncFilter
HasValue and AsyncFilterqasta
 
Web internship java script
Web internship   java scriptWeb internship   java script
Web internship java scriptNoveo
 
automation is iOS development
automation is iOS developmentautomation is iOS development
automation is iOS developmentIvan Trifonov
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftAnton Loginov
 
Пользовательские сценарии в карточках Docsvision 5
Пользовательские сценарии в карточках Docsvision 5Пользовательские сценарии в карточках Docsvision 5
Пользовательские сценарии в карточках Docsvision 5Docsvision
 
лабораторная работа №4 uml
лабораторная работа №4 umlлабораторная работа №4 uml
лабораторная работа №4 umlNatasha Lysakova
 
введение в объектно ориентированный анализ
введение в объектно ориентированный анализвведение в объектно ориентированный анализ
введение в объектно ориентированный анализMaksim Nikitin
 
Some Elements of Functional Porgamming Languages
Some Elements of Functional Porgamming LanguagesSome Elements of Functional Porgamming Languages
Some Elements of Functional Porgamming Languages_ymn
 
03 templates kachalova
03 templates kachalova03 templates kachalova
03 templates kachalovaSokolov Artyom
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012InTRUEdeR
 
Ios workshop-fs
Ios workshop-fsIos workshop-fs
Ios workshop-fsivgeniya
 
Бизнес и системный анализ весна 2013 лекция 5
Бизнес и системный анализ весна 2013 лекция 5Бизнес и системный анализ весна 2013 лекция 5
Бизнес и системный анализ весна 2013 лекция 5Technopark
 
C# Desktop. Занятие 15.
C# Desktop. Занятие 15.C# Desktop. Занятие 15.
C# Desktop. Занятие 15.Igor Shkulipa
 
Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16OdessaFrontend
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Dev_Party
 

Similar a Vba 05 (20)

Reactive Extensions
Reactive ExtensionsReactive Extensions
Reactive Extensions
 
Automation Functional Testing in Agile Projects
Automation Functional Testing in Agile ProjectsAutomation Functional Testing in Agile Projects
Automation Functional Testing in Agile Projects
 
Новости Global summit 2015
Новости Global summit 2015Новости Global summit 2015
Новости Global summit 2015
 
HasValue and AsyncFilter
HasValue and AsyncFilterHasValue and AsyncFilter
HasValue and AsyncFilter
 
SkyBase
SkyBaseSkyBase
SkyBase
 
Web internship java script
Web internship   java scriptWeb internship   java script
Web internship java script
 
automation is iOS development
automation is iOS developmentautomation is iOS development
automation is iOS development
 
Как пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на SwiftКак пройти собеседование и получить первую работу на Swift
Как пройти собеседование и получить первую работу на Swift
 
Пользовательские сценарии в карточках Docsvision 5
Пользовательские сценарии в карточках Docsvision 5Пользовательские сценарии в карточках Docsvision 5
Пользовательские сценарии в карточках Docsvision 5
 
лабораторная работа №4 uml
лабораторная работа №4 umlлабораторная работа №4 uml
лабораторная работа №4 uml
 
введение в объектно ориентированный анализ
введение в объектно ориентированный анализвведение в объектно ориентированный анализ
введение в объектно ориентированный анализ
 
Some Elements of Functional Porgamming Languages
Some Elements of Functional Porgamming LanguagesSome Elements of Functional Porgamming Languages
Some Elements of Functional Porgamming Languages
 
03 templates kachalova
03 templates kachalova03 templates kachalova
03 templates kachalova
 
What's new in Visual Studio 2012
What's new in Visual Studio 2012What's new in Visual Studio 2012
What's new in Visual Studio 2012
 
Ios workshop-fs
Ios workshop-fsIos workshop-fs
Ios workshop-fs
 
Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)
 
Бизнес и системный анализ весна 2013 лекция 5
Бизнес и системный анализ весна 2013 лекция 5Бизнес и системный анализ весна 2013 лекция 5
Бизнес и системный анализ весна 2013 лекция 5
 
C# Desktop. Занятие 15.
C# Desktop. Занятие 15.C# Desktop. Занятие 15.
C# Desktop. Занятие 15.
 
Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16Объекты в ECMAScript | Odessa Frontend Meetup #16
Объекты в ECMAScript | Odessa Frontend Meetup #16
 
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
Валерий Чугреев, ИСЭРТ РАН — Архитектура MVC в контексте web-разработки — про...
 

Más de Alexander Babich

Актуальні курси з мого арсеналу (Бабич О.В.)
Актуальні курси з мого арсеналу (Бабич О.В.)Актуальні курси з мого арсеналу (Бабич О.В.)
Актуальні курси з мого арсеналу (Бабич О.В.)Alexander Babich
 
M365: Word, Excel, PowerPoint...
M365: Word, Excel, PowerPoint...M365: Word, Excel, PowerPoint...
M365: Word, Excel, PowerPoint...Alexander Babich
 
M365: Інші сервіси та застосунки
M365: Інші сервіси та застосункиM365: Інші сервіси та застосунки
M365: Інші сервіси та застосункиAlexander Babich
 
M365: Завершення
M365: ЗавершенняM365: Завершення
M365: ЗавершенняAlexander Babich
 
M365: рекомендації
M365: рекомендаціїM365: рекомендації
M365: рекомендаціїAlexander Babich
 
M365: Огляд платформи Microsoft365
M365: Огляд платформи Microsoft365M365: Огляд платформи Microsoft365
M365: Огляд платформи Microsoft365Alexander Babich
 
M365: Роздаткові матеріали
M365: Роздаткові матеріалиM365: Роздаткові матеріали
M365: Роздаткові матеріалиAlexander Babich
 
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptx
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptxMeet&Code - VR, метавсесвіт та криптовалюти (1).pptx
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptxAlexander Babich
 
Ви обрали професію програміста
Ви обрали професію програмістаВи обрали професію програміста
Ви обрали професію програмістаAlexander Babich
 
Змішане навчання в ППФК
Змішане навчання в ППФКЗмішане навчання в ППФК
Змішане навчання в ППФКAlexander Babich
 
Формування професійних інтересів студентів
Формування професійних інтересів студентівФормування професійних інтересів студентів
Формування професійних інтересів студентівAlexander Babich
 
День відкритих дверей' 2021
День відкритих дверей' 2021День відкритих дверей' 2021
День відкритих дверей' 2021Alexander Babich
 
06. Обучение и сертификация по Azure
06. Обучение и сертификация по Azure06. Обучение и сертификация по Azure
06. Обучение и сертификация по AzureAlexander Babich
 
05.Внедрение Azure
05.Внедрение Azure05.Внедрение Azure
05.Внедрение AzureAlexander Babich
 
04.Службы Azure - подробнее
04.Службы Azure - подробнее04.Службы Azure - подробнее
04.Службы Azure - подробнееAlexander Babich
 
03.Сколько стоит облако
03.Сколько стоит облако03.Сколько стоит облако
03.Сколько стоит облакоAlexander Babich
 

Más de Alexander Babich (20)

Актуальні курси з мого арсеналу (Бабич О.В.)
Актуальні курси з мого арсеналу (Бабич О.В.)Актуальні курси з мого арсеналу (Бабич О.В.)
Актуальні курси з мого арсеналу (Бабич О.В.)
 
M365: Word, Excel, PowerPoint...
M365: Word, Excel, PowerPoint...M365: Word, Excel, PowerPoint...
M365: Word, Excel, PowerPoint...
 
M365: Інші сервіси та застосунки
M365: Інші сервіси та застосункиM365: Інші сервіси та застосунки
M365: Інші сервіси та застосунки
 
M365: OneDrive
M365: OneDriveM365: OneDrive
M365: OneDrive
 
M365: Завершення
M365: ЗавершенняM365: Завершення
M365: Завершення
 
M365: SharePoint
M365: SharePointM365: SharePoint
M365: SharePoint
 
M365: рекомендації
M365: рекомендаціїM365: рекомендації
M365: рекомендації
 
M365: Огляд платформи Microsoft365
M365: Огляд платформи Microsoft365M365: Огляд платформи Microsoft365
M365: Огляд платформи Microsoft365
 
M365: Вступ
M365: ВступM365: Вступ
M365: Вступ
 
M365: Роздаткові матеріали
M365: Роздаткові матеріалиM365: Роздаткові матеріали
M365: Роздаткові матеріали
 
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptx
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptxMeet&Code - VR, метавсесвіт та криптовалюти (1).pptx
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptx
 
Ви обрали професію програміста
Ви обрали професію програмістаВи обрали професію програміста
Ви обрали професію програміста
 
Змішане навчання в ППФК
Змішане навчання в ППФКЗмішане навчання в ППФК
Змішане навчання в ППФК
 
Формування професійних інтересів студентів
Формування професійних інтересів студентівФормування професійних інтересів студентів
Формування професійних інтересів студентів
 
День відкритих дверей' 2021
День відкритих дверей' 2021День відкритих дверей' 2021
День відкритих дверей' 2021
 
Спробуйте Python
Спробуйте PythonСпробуйте Python
Спробуйте Python
 
06. Обучение и сертификация по Azure
06. Обучение и сертификация по Azure06. Обучение и сертификация по Azure
06. Обучение и сертификация по Azure
 
05.Внедрение Azure
05.Внедрение Azure05.Внедрение Azure
05.Внедрение Azure
 
04.Службы Azure - подробнее
04.Службы Azure - подробнее04.Службы Azure - подробнее
04.Службы Azure - подробнее
 
03.Сколько стоит облако
03.Сколько стоит облако03.Сколько стоит облако
03.Сколько стоит облако
 

Vba 05

  • 1. Модуль 5. Объектная модель MS Excel, объект Application
  • 2. О чем мы узнаем Объектная модель MS Excel Методы объекта Application Свойства объекта Application События объекта Application
  • 3. Цели программирования для Excel • Автоматизация вычислений • Автоматизация ввода и обработки информации • Работа с базами данных – вывод, ввод, анализ, визуализация информации • Анализ финансовой и другой информации • Создание систем для организации автоматизированного ввода данных • Математическое моделирование
  • 4. ООП Давайте вспомним основы! Классы: виды Объекты: представители атрибуты: характеристики методы: поведение
  • 6. Внешние объекты QueryTable Подключение к БД Анализ данных PivotTable Chart Визуализация
  • 7. Объект Application • Представляет все приложение Excel • Находится на самом верхнем уровне объектной модели • Для вызвать Excel из другого приложения, нужно создать объект Excel.Application • В меню Tools | References добавить ссылку на Microsoft Excel 14.0 Object Library Dim oExcel As New Excel.Application oExcel.Workbooks.Add oExcel.Visible = True
  • 8. Объект Application • Если вы работаете из уже запущенного Excel, объект Application уже доступен • Равнозначные строки кода: • Application.Workbooks.Add • Workbooks.Add
  • 9. Application: свойства • Active... • ActiveCell, ActiveSheet, ActiveChart, ActivePrinter MsgBox ("В ячейке с именем " + _ Application.ActiveCell.Address + _ " хранится значение " + _ Application.ActiveCell.Value) ActiveCell.Value = _ InputBox("Введите новое значение для ячейки " + _ ActiveCell.Address)
  • 10. Application: свойства • ScreenUpdating – обновление экрана • AddIns • AutoRecover • Интервал автосохранения в минутах (1-120) • Application.AutoRecover.Time = 5 • Calculation • CalculationState
  • 11. Application: свойства • Cells • возвращает объект Range – все ячейки в активном листе активной книги • Item – свойство по умолчанию для объекта Range • Application.Cells(1, 2).Font.Bold = True • Свойства Columns и Rows действуют очень похоже • Application.Columns(2).Font.Bold = True • Application.Rows(2).Font.Bold = True
  • 12. Application: свойства • Cursor • Application.Cursor = xlWait • MsgBox ("Cursor has changed") • Application.Cursor = xlDefault • DataEntryMode • разрешается только вводить данные в разблокированные ячейки выбранного диапазона • DecimalSeparator и ThousandsSeparator • Application.UseSystemSeparators = False
  • 13. Application: свойства • Dialogs • Application.Dialogs.Application… • DisplayAlerts • EnableEvents • ErrorCheckingOptions • FileDialog Application.FileDialog(msoFileDialogOpen).AllowMultiSelect = False Application.FileDialog(msoFileDialogOpen).Show Debug.Print Application.FileDialog(msoFileDialogOpen).SelectedItems(1)
  • 14. Application: свойства • FileSearch • Interactive • International, LanguageSettings • LibraryPath – путь к каталогу с надстройками • Office11Library • MoveAfterReturn • Application.MoveAfterReturnDirection = xlToRight
  • 15. Application: свойства • Names – коллекция всех именованных диапазонов • метод Add() • ODBCErrors и OLEDBErrors • Коллекции объектов ODBCError и OLEDBError • OnWindow - имя процедуры, которая должна находиться в модуле уровня книги • вызывается всякий раз, когда пользователь переключился в окно Excel • Auto_Activate и Auto_Deactivate
  • 16. Application: свойства • Range – возвращает диапазон ячеек • ReferenceStyle • Application.ReferenceStyle = xlR1C1 • Selection • Sheets и Worksheets • TemplatesPath • Application DataMicrosoftTemplates
  • 17. Application: свойства • ThisCell и ThisWorkbook • Windows, Workbooks и Sheets • WorkSheetFunction – использование в программе функций Excel напрямую • Не прописывая в ячейку
  • 18. Application: методы • ActivateMicrosoftApp() • Word, Access, PowerPoint, Project, FoxPro, Schedule Plus • AddCustomList() и DeleteCustomList() • объект Range как параметр • Calculate(), CalculateFull(), CalculateFullRebuild() • Останов по вызову CheckAbort() • ConvertFormula() • DoubleClick()
  • 19. Application: методы • Evaluate() - по имени найти объект книги Excel и преобразовать его в объект или значения • Допустимые имена: • имена ячеек в стиле A1 • возвращается объект Cell • имена диапазонов • возвращается объект Range • имена, определенные в макросе • названия переменных • ссылки на внешние книги • Evaluate("[Book1.xls]Sheet1!A5"))
  • 20. Application: методы • Evaluate можно вызвать и неявно • имя объекта в квадратных скобках • равнозначные строки : • [a1].Value = 25 • Evaluate("A1").Value = 25 • чаще всего используется синтаксис с квадратными скобками • самый простой и естественный метод обратиться к ячейке или диапазону
  • 21. Application: методы • GetOpenFilename() Filename = Application.GetOpenFilename() If Filename <> False Then Debug.Print Filename End If • GetSaveAsFilename()
  • 22. Application: методы • GoTo() - выделяет и активизирует диапазон или ячейку или запускает на выполнение процедуру Application.Goto _ Reference:=ActiveSheet.Range("H500"), _ Scroll:=True • Help() • Intersect() - возвращает диапазон, общий для двух или более диапазонов
  • 23. Application: методы • OnKey() – назначение клавиш процедурам • Alt+M для процедуры Msg() из модуля Лист1 • Application.OnKey "%{m}", "Лист1.Msg" • OnRepeat() и OnUndo() • RegisterXLL() • Repeat() • Run()
  • 24. Application: методы • SendKeys(Keys, Wait) • Keys: • {BS} • ~ (тильда) для Enter • {DEL} • SHIFT - + (знак плюс) • CTRL - ^ (крышка) • ALT - % (знак процента) • Wait : True или False • Application.SendKeys ("Сейчас закрою программу!")
  • 25. Application: методы • Union() • Volatile() • Wait() If Application.Wait(Now + TimeValue("0:00:5")) Then MsgBox "Пять секунд прошло" End If • Quit() • OnTime() • Application.OnTime TimeValue("17:00:00"), "my_Procedure"
  • 26. Application: события Основные шаги: • Создаем новый модуль класса • Добавляем в него объявление объекта Application • Public WithEvents obj_ExApp As Excel.Application • Пишем обработчик нужного события • Пишем процедуру связи объекта с реальным приложением Dim obj_ExcelAppEv As New AppEvents Sub EventsInit() Set obj_ExcelAppEv.obj_ExApp = Excel.Application End Sub
  • 28. Подводим итоги • Excel имеет весьма богатую объектную модель, в основе которой лежит объект Application • Application имеет массу свойств, методов и событий, которые можно использовать для программного доступа к приложению • Недостаточно написать обработчик события – нужно создать процедуру, привязывающую задекларированный объект Application к реально действующему приложению
  • 29. Практика Написать программу, которая выводит окно сообщения каждый раз при создании новой книги
  • 30. Практика Dim obj_ExcelAppEv As New AppEvents Sub EventsInit() Set obj_ExcelAppEv.obj_ExApp = Excel.Application End Sub Public WithEvents obj_ExApp As Excel.Application Private Sub obj_ExApp_NewWorkbook(ByVal Wb As Workbook) 'Выполняется при создании новой книги MsgBox "Вы создали новую книгу" End Sub
  • 32. Контрольные вопросы • Какие объекты Excel, кроме Application, вы знаете? • Какие свойства позволяют получить доступ к активной ячейке, принтеру, и т.д? • Как отправить в приложение нажатия клавиш Alt+F, X для выхода из программы? • Как получить возможность создавать обработчики событий для Application?