ActiveCell.Offset(1, 0) .Select
ActiveCell.FormulaRlCl = "2"
A c t i v e C e l l . O f f s e t (1 , 0 ) . S e l e c t
ActiveCell.FormulaRlCl = "3"
A c t i v e C e l l . O £ f s e t ( - 2 , 0 ) . S e l e c t
End Sub
Вы можете получить еще более эффективную версию макроса (например ту, которую я
написал вручную), где вообще не выполняется выделение:
Sub Macrol ()
ActiveCell = 1
ActiveCell.Offset(1. 0) = 2
ActiveCell.Offset(-2, 0) = 3
Используйте запись действий
Несомненно, лучший способ познакомиться с VBA— включить функцию записи макросов и записать отдельные действия, выполненные в Excel. Это быстрый метод узнать, какие объекты, свойства и методы относятся к конкретной задаче. Будет лучше, если при записи отображается окно модуля VBA, в котором представлен записываемый код.
Используйте электронную справочную систему
Основной источник подробной информации об объектах, методах и процедурах Excel — это электронная справочная система.
Используйте броузер объектов
Окно Object Browser (Броузер объектов)— это удобный инструмент, предоставляющий список всех свойств и методов для всех доступных объектов. В VBE окно Object Browser можно отобразить одним из трех способов.
• Нажать <F2>.
• Выбрать в строке меню команду View - Object Browser.
• Щелкнуть на кнопке Object Browser на стандартной панели инструментов.
Броузер объектов — полный справочный ресурс
Выпадающий список в левом верхнем углу окна Object Browser содержит список всех библиотек объектов, к которым у вас есть доступ,
• Собственно Excel.
• MSForms (используется для создания специальных диалоговых окон).
• Office (объекты, общие для всех приложений Microsoft Office).
• S t d o l e (объекты автоматизации OLE).
• VBA.
• Все открытые рабочие книги (каждая книга считается библиотекой объектов, так как содержит объекты).
Ваш выбор в этом списке определяет, что отображается в окне Classes (Классы), а выбор в окне Classes обусловит появление определенных компонентов в окне Members of (Включены в).
После выбора библиотеки можно осуществить поиск конкретной строки текста, чтобs получить список свойств и методов, содержащих данный текст. Это можно сделать, введя текст во втором раскрывающемся списке и щелкнув на значке с изображением бинокля.
Предположим, что выработаете над проектом, обрабатывающим примечания в ячейках. 1. Выберите интересующую вас библиотеку. Если вы не уверены, какую именно библиотеку выбрать, укажите вариант <All Libraries>.
2. Введите Comment в выпадающем списке под списком библиотек.
3. Щелкните на значке в виде бинокля, чтобы начать поиск текста.
В окне Search Results (Результаты поиска) отображается текст, соответствующий фрагменту для поиска. Выберите один объект, чтобы отобразить его классы в окне Classes. Укажите класс, чтобы отобразить его члены (свойства, методы и константы). Обратите внимание на нижнюю часть окна, где дается дополнительная информация об объекте. Вы можете нажать <F1>, чтобы перейти непосредственно к необходимому разделу справочной системы.
Система Object Browser может сначала показаться сложной, но, изучив ее вы убедитесь в ее незаменимости.
Экспериментируйте с окном Immediate
Как было отмечено во врезке в одном из предыдущих разделов этой главы, окно Immediate в VBE используется для тестирования операторов и проверки разных выражений
VBA. Рекомендуется отображать окно Immediate, так как оно часто используется для про-
верки выражений и при отладке кода.
1.2.2 Примеры на использование VBA в среде Excel
Объектная модель
Объектная модель MS Excel представляет собой иерархию объектов, подчиненных одному объекту Application, который соответствует самому приложению Excel. Многие из этих объектов собраны в библиотеке объектов Excel, но некоторые из них, например, объект Assistant, входят в библиотеку объектов Office, которая является общей для всех офисных приложений.
Объект Application
Объект Application — это главный (корневой) объект в иерархии объектов MS Excel, представляющий само приложение MS Excel. Он имеет огромное число свойств и методов, которые позволяют установить общие параметры приложения MS Excel.
Свойства объекта Application
Объект Application, благодаря обширной коллекции свойств, позволяет программно установить значения многих опций окна Параметры, отображаемого при выборе команды Сервис - Параметры. Кроме того, он обеспечивает доступ к объектам верхнего уровня типа ActiveCell, ActiveSheet и т.д. Перечислим основные свойства этого объекта:
ActiveCell ActiveChart
AcfcivePrinter ActiveSheet
ActiveWorkBook AddIns
CellDragAndDrop Charts
Cursor DefaultFilePath
DefaultWebOptions DisplayAlerts
DisplayFormulaBar DisplayScrollBars
EditDirectlylnCell FileSearch
Height LibraryPath
MemoryTotal Names
Organ i zat ionName ProductCode
Referencestyle Selection
StatusBar Top
UsableWidth Version
Windows WorksheetFunction
Семейство встроенных диалоговых окон
Свойство Dialogs возвращает семейство всех встроенных диалоговых окон. Параметр этого семейства идентифицирует ОКНО, метод Show отображает его на экране, а параметры этого метода задают параметры, специфицируемые в отображаемом окне. Метод show возвращает значение True, если задача, поставленная в отображаемом окне, была выполнена успешно. Например, следующий код (листинг 2) отображает окно Открытие документа для открытия книги C:\test.xls.
Листинг2. Открытие книги при помощи встроенного окна
Sub DemoDialogs() Dim idx As Long
idx = Application.Dialogs (xlDialogOpen) .Show("с: \test.xls") If idx Then
MsgBox "Файл открыт" Else
MsgBox "Файл не открыт" End If
End Sub.
Объект FileDialog
Объект FileDialog, возвращаемый свойством FileDialog объекта Application, предоставляет в распоряжение разработчика диалоговые окна Открыть и Сохранить как. Свойство FileDialog имеет один параметр DiaiogType. задающий тип окна. У этого параметра имеются четыре допустимых значения:
msoFileDialogFiiePicker — позволяет пользователю выбрать файл;
msoFileDialogFolderPicker — позволяет пользователю выбрать папку;
msoFileDialogopen — позволяет пользователю открыть выбранный файл. Открытие файла производится методом Execute;
msoFileDialogsaveAs — позволяет пользователю сохранить файл. Сохранение файла производится методом Execute.
Для отображения окна, симулируемого объектом FileDialog, необходимо воспользоваться методом show. Этот метод возвращает значение 0, если нажата кнопка Отмена и значение -1, если нажата другая функциональная кнопка. Для окон Открыть и Сохранить как после применения надо воспользоваться методом Execute для реализации выбранной команды.
И в следующих трех примерах демонстрируется техника сохранения и загрузки файла при помощи окон, имеющих типы msoFileDialogFilePicker (ЛИСТИНГ3), msoFileDialogOpen (ЛИСТИНГ 4) И msoFileDialogSaveAs (ЛИСТИНГ 5).
Листинг 3. Загрузка файлов с помощью окна msoFiieDiaiogFiiePicker
Sub LoadFiles()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim itm As Variant With fd
If .Show = -1 Then
For Each itm In .Selectedlterns
Workbooks.Add itm Next End If End With
Set fd = Nothing
Листинг 4. Загрузка файла с помощью окна msoFileDialogOpen
Sub LoadFile()
Set fd = Application.FileDialog(msoFileDialogOpen) If fd.Show = -1 Then
fd.Execute Else
MsgBox "Выбрали отмену" End If
Листинг 5. Сохранение файла с помощью окна msoFileDialogSaveAs
Sub SaveFile()
Dim fd as FileDialog
Set fd=Application.FileDialog(mso FileDialogSaveAs)
If fd.Show= -1 then
Fd.Execute
Поиск файлов
Свойство FileSearch объекта Application возвращает объект FileSearch, который инкапсулирует и себе свойства и методы,реализующие поиск специфицированного файла на диске. Перечислим основные свойства объекта FileSearch:
- свойство LookIn возвращает или устанавливает каталог, в котором производится поиск.
- свойство FileType возвращает или устанавливает тип искомого файла. Его допустимым значением может быть одна из следующих констант:
msoFileTypeAllFiles
msoFileTypeCalendarItems
msoFileTypeCustom
msoFileTypeDataConnectionFiles
msoFileTypeDocumentImagingFiles
msoFileTypeJournaItem
msoFileTypeNoteItems
msoFileTypeOutLookItems
msoFileTypePowerPoint
msoFileTypeTemplates
msoFileTypeWebPages
msoFileTypeBindere
msoFileTypeContactItems
msoFileTypeDataBases
msoFileTypeMailItems
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24