Модуль 5.Объектная модель MS Excel, объект Application
О чем мы узнаемОбъектная модель MS ExcelМетоды объекта ApplicationСвойства объекта ApplicationСобытия объекта Application
Цели программирования для Excel• Автоматизация вычислений• Автоматизация ввода и обработки информации• Работа с базами дан...
ООПДавайте вспомним основы!   Классы: виды   Объекты: представители       атрибуты: характеристики       методы: поведение
Иерархия объектов
Внешние объекты                              QueryTable   Подключение к БД     Анализ данных   PivotTable                 ...
Объект Application• Представляет все приложение Excel• Находится на самом верхнем уровне объектной  модели• Для вызвать Ex...
Объект Application• Если вы работаете из уже  запущенного Excel, объект Application  уже доступен• Равнозначные строки код...
Application: свойства• Active... • ActiveCell, ActiveSheet, ActiveChart, ActivePrinter MsgBox ("В ячейке с именем " + _ Ap...
Application: свойства• ScreenUpdating – обновление экрана• AddIns• AutoRecover• Интервал автосохранения в минутах (1-120)•...
Application: свойства• Cells • возвращает объект Range – все ячейки в   активном листе активной книги • Item – свойство по...
Application: свойства• Cursor • Application.Cursor = xlWait • MsgBox ("Cursor has changed") • Application.Cursor = xlDefau...
Application: свойства• Dialogs    • Application.Dialogs.Application…•     DisplayAlerts•     EnableEvents•     ErrorChecki...
Application: свойства• FileSearch• Interactive• International, LanguageSettings• LibraryPath – путь к каталогу с  надстрой...
Application: свойства• Names – коллекция всех именованных  диапазонов • метод Add()• ODBCErrors и OLEDBErrors • Коллекции ...
Application: свойства• Range – возвращает диапазон ячеек• ReferenceStyle• Application.ReferenceStyle = xlR1C1• Selection• ...
Application: свойства• ThisCell и ThisWorkbook• Windows, Workbooks и Sheets• WorkSheetFunction – использование в  программ...
Application: методы• ActivateMicrosoftApp() • Word, Access, PowerPoint, Project, FoxPro,   Schedule Plus• AddCustomList() ...
Application: методы• Evaluate() - по имени найти объект книги Excel и  преобразовать его в объект или значения • Допустимы...
Application: методы• Evaluate можно вызвать и неявно• имя объекта в квадратных скобках• равнозначные строки : • [a1].Value...
Application: методы• GetOpenFilename() Filename = Application.GetOpenFilename() If Filename <> False Then    Debug.Print F...
Application: методы• GoTo() - выделяет и активизирует диапазон или ячейку или запускает на выполнение процедуру    Applica...
Application: методы• OnKey() – назначение клавиш процедурам    • Alt+M для процедуры Msg() из модуля      Лист1    • Appli...
Application: методы• SendKeys(Keys, Wait) • Keys:  • {BS}  • ~ (тильда) для Enter  • {DEL}  • SHIFT - + (знак плюс)  • CTR...
Application: методы• Union()• Volatile()• Wait()  If Application.Wait(Now + TimeValue("0:00:5")) Then     MsgBox "Пять сек...
Application: событияОсновные шаги:• Создаем новый модуль класса• Добавляем в него объявление объекта Application • Public ...
Application: события
Подводим итоги• Excel имеет весьма богатую объектную модель, в  основе которой лежит объект Application• Application имеет...
ПрактикаНаписать программу, которая выводит окносообщения каждый раз при создании новойкниги
ПрактикаDim obj_ExcelAppEv As New AppEventsSub EventsInit() Set obj_ExcelAppEv.obj_ExApp = Excel.ApplicationEnd SubPublic ...
Вопросы?
Контрольные вопросы• Какие объекты Excel, кроме Application, вы  знаете?• Какие свойства позволяют получить  доступ к акти...
Upcoming SlideShare
Loading in...5
×

Vba 05

744

Published on

Презентация из моего тренинга по VBA на основе курсов с intuit.ru

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
744
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Vba 05

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

×