Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA Тема 3 (сокр) лене.doc
Скачиваний:
29
Добавлен:
29.02.2016
Размер:
1.12 Mб
Скачать

Тема 3. Использование языка visual basic for applications для реализации математических моделей и численных методов (6 часов)

1 ОСНОВНЫЕ ЭЛЕМЕНТЫ VBA. ПЕРЕМЕННЫЕ, МАССИВЫ, УСЛОВНЫЕ КОНСТРУКЦИИ, УСЛОВНЫЕ ПЕРЕХОДЫ

1.1 Основные элементы VBA

ЧТО ТАКОЕ VBA

VBA – язык визуального программирования, встроенный в пакет Microsoft Office, благодаря этому он корректно работает с объектами этого пакета и позволяет расширить его возможности. VBA:

- позволяет проводить отладку приложений без его компиляции;

- позволяет использовать язык SQL для доступа к БД;

имеет среду разработки с соответствующими инструментами.

VBA — относительно легкий язык программирования. Он прост в освоении и позволяет быстро получать ощутимые результаты — конструировать профессиональные приложения, решающие практически все задачи, встречающиеся в среде Windows. При этом создание многих приложений с использованием VBA проще и быстрее, чем при помощи других языков программирования. VBA применяет технологию визуального программирования, т. е. конструирование рабочей поверхности приложения и элементов его управления непосредственно на экране, а также запись всей программы или ее частей при помощи MacroRecorder.

ОБЪЕКТЫ И ИХ СЕМЕЙСТВА

VBA относится к языкам объектно-ориентированного программирования (ООП). ООП можно описать как методику анализа, проектирования и написания приложений с помощью объектов. Что такое объект? Объект позволяет инкапсулировать данные вместе с кодом, предназначенным для их обработки, т. е. объединить их в нечто целое, именуемое объектом. VBA не является объектно-ориентированном языком в строгом понимании этого слова, однако объектный подход играет в нем большую роль. Все визуальные объекты, такие как рабочий лист (Worksheet), диапазон (Range), диаграмма (Chart), форма (UserForm), являются объектами. В VBA имеется более 100 встроенных объектов.

Семейство (объект Collection) представляет собой объект, содержащий несколько других объектов, как правило, одного и того же типа. Например, объект Workbooks (рабочие книги) содержит все открытые объекты Workbook (рабочая книга). Каждый элемент семейства нумеруется и может быть идентифицирован либо по номеру, либо по имени. Например, Worksheets(1) обозначает первый рабочий лист активной книги, a Worksheets("Лист1") — рабочий лист с именем лист1.

Объекты OLE и ActiveX

В VBA используется механизм OLE (Object Linking and Embedding — связывание и внедрение объектов), который позволяет взаимодействовать с любыми программами, поддерживающими OLE. Примером элементов, которые можно интегрировать при помощи механизма OLE, являются вставляемые объекты OLEObject, создаваемые, например, пришомощи программ WordArt, ClipArt и т. д. Все OLE-объекты рабочего листа образуют семейство OLEObjects. Вручную в рабочий лист OLE-объекты вставляются командой Вставка, Объект (Insert, Object) с выбором в появившемся диалоговом окне Вставка объекта (Object) из списка на вкладке Создание (Create New) внедряемого объекта. OLE-объект отличается от обычного тем, что при выборе внедренного объекта (перемещении на него указателя и щелчке кнопкой мыши) активизируется программа, связанная с этим объектом, и меню приложения заменяется меню программы, его создавшей. Теперь можно, не выходя из основного приложения, работать с данным объектом, редактируя и видоизменяя его средствами создавшей его программы. Кроме того, OLE-технология обладает так называемым свойством Automation, с помощью которого можно устанавливать свойства, применять методы и обрабатывать события внедренных объектов, как обычных объектов приложения.

С 1996 года фирма Microsoft ввела новую терминологию и теперь то, что раньше именовалось OLE-объект, называется объектом ActiveX, a OLE Automation называется ActiveX Automation.

Классы

Важнейшим понятием ООП является класс. Класс обычно описывается, как проект, на основе которого впоследствии будет создан конкретный объект. Таким образом, класс определяет имя объекта, его свойства и действия, выполняемые над объектом. В свою очередь каждый объект, в соответствии с описанным выше, является экземпляром класса.

Иерархия объектов

Объектная библиотека VBA располагает более 100 различных объектов, находящихся на различных уровнях иерархии. Иерархия определяет связь между объектами и показывает пути доступа к ним. На рис. 1.1 приведена модель встроенных объектов VBA.

Полная ссылка на объект состоит из ряда имен вложенных последовательно друг в друга объектов. Разделителями имен объектов в этом ряду являются точки, ряд начинается с объекта Application и заканчивается именем самого объекта. Например, полная ссылка на ячейку А1 рабочего листа лист рабочей книги с именем Архив имеет вид:

Application.Workbooks("Архив").Worksheets("Лист1").Range("Al")

Приводить каждый раз полную ссылку на объект совершенно не обязательно. Обычно достаточно ограничиться только неявной ссылкой на объект.

В неявной ссылке, в отличие от полной, объекты, которые активны в данный момент, как правило, можно опускать. В рассмотренном случае, если ссылка на ячейку А1 дана в программе, выполняемой в среде Excel, то ссылка на объект Application может быть опущена, т. е. достаточно привести относительную ссылку:

Workbooks("Архив").Worksheets("Лист1").Range("A1")

Рис. 1.1. Иерархия встроенных объектов VBA

Если рабочая книга Архив является активной, то ссылку можно записать еще короче:

Worksheets("Лист!").Range("А1")

Если и рабочий лист лист1 активен, то в относительной ссылке вполне достаточно ограничиться упоминанием только диапазона А1:

Range("Al")

Методы

Объект сам по себе не представляет большого значения. Намного значительнее то, какие действия можно совершать над объектом, и какими свойствами он обладает. Метод как раз и представляет собой действие, выполняемое над объектом.

Синтаксис применения метода:

Объект.Метод

В данном примере при помощи метода Quit (закрыть) закрывается приложение (объект Application).

Application.Quit

Метод можно применять ко всем объектам семейства. В данном примере к семейству ChartObjects (диаграммы) рабочего листа лист1 применен метод Delete (удалить), который приводит к удалению всех диаграмм с рабочего листа Лист1:

Worksheets("Лист1").ChartObjects.Delete

Свойства

Свойство представляет собой атрибут объекта, определяющий его характеристики, такие как размер, цвет, положение на экране и состояние объекта, например, доступность или видимость. Чтобы изменить характеристики объекта, надо просто изменить значения его свойств.

Синтаксис установки значения свойства: Объект.Свойство = ЗначениеСвойства.

В следующем примере изменяется заголовок окна Excel посредством задания свойства Caption объекту Application:

Application.Caption = "Пример"

Свойство можно изменять сразу у всех объектов семейства. В приведенном ниже примере с помощью установки свойству visible (видимость) значения False (ложь) все рабочие листы активной книги (семейство объектов Worksheets) скрываются:

Worksheets.Visible = False

Среди свойств особое место занимают свойства, возвращающие объект. Приведем наиболее часто употребляемые подобные свойства.

ActiveWindow

Возвращает активное окно Excel

ActiveWorkbook

Возвращает активную рабочую книгу активного окна Excel

ActiveSheet

Возвращает активный лист активной рабочей книги

ActiveDialog

Возвращает активное диалоговое окно активного рабочего листа

ActiveChart

Возвращает активную диаграмму активного рабочего листа

ActiveCell

Возвращает активную ячейку активного рабочего листа i

Свойство ActiveCell возвращает активную ячейку активного рабочего листа активной рабочей книги. Следующие три примера возвращают одну и ту же активную ячейку. Обратите внимание на первый из них. Его особенностью является то, что свойство, возвращающее объект, в инструкции записывается без этого объекта. Такой способ записи является допустимым и применяется к широкому классу свойств, возвращающих объекты.

ActiveCell

ActiveWindow.ActiveCel1

Application.ActiveWindow.ActiveCell

События

Событие представляет собой действие, распознаваемое объектом (например, щелчок мышью или нажатие клавиши), для которого можно запрограммировать отклик. События возникают в результате действий пользователя или программы, или же они могут быть вызваны системой.

Суть программирования на VBA как раз и заключается в этих двух понятиях: событие и отклик на него. Если пользователь производит какое-то воздействие на систему, скажем нажимает кнопку, тогда в качестве отклика выполняется код созданной пользователем процедуры. Если такой отклик не создан,

СТРУКТУРА РЕДАКТОРА VBA

Редактор VBA активизируется командой Сервис/Макрос/Редактор Visual Basic (Tools/Macro/Visual Basic Editor) или нажатием кнопки Редактор Visual Basic (Visual Basic Editor) на панели инструментов Visual Basic. Возвратиться из редактора VBA в рабочую книгу можно нажатием кнопки Вид/Microsoft Excel (View/Microsoft Excel). Интерфейс VBA состоит из следующих основных компонентов: окно проекта, окно свойств, окно редактирования кода, окна форм, меню и панели инструментов.

Окно проекта

Окно проекта в редакторе VBA активизируется выбором команды Вид/Окно проекта (View/Project window) или нажатием кнопки Окно проекта (Project window). В окне проекта (VBAProject) представлена иерархическая структура файлов форм и модулей текущего проекта (рис.1.2).

Рис. 1.2. Окно проекта

В проекте автоматически создается модуль для каждого рабочего листа и для всей книги. Кроме того, модули создаются для каждой пользовательской формы, макросов и классов. По своему предназначению модули делятся на два типа: модули объектов и стандартные. К стандартным модулям относятся те, которые содержат макросы. Такие модули добавляются в проект командой Вставка/Модуль (Insert/Module). К модулям объектов относятся модули, связанные с рабочей книгой, рабочими листами, формами, и модули класса. Формы создаются командой Вставка/UserForm (Insert/UserForm),а модули класса — командой Вставка/Модуль класса (Insert/Module). По мере создания, добавления и удаления файлов из проекта эти изменения отображаются в окне проекта. Отметим, что удаление файла из окна проекта производится выбором значка файла с последующим выполнением команды Файл/Удалить (File/Delete). В окне проекта выводится проект всех открытых рабочих книг. Это позволяет легко копировать формы и коды из одного проекта в другой, что убыстряет процесс создания новых приложений.

Окно для редактирования кода

Перемещение указателя на значок файла в окне проекта и выполнение двойного щелчка кнопкой мыши открывает окно редактора кода (рис.1.3) для соответствующего модуля.

Рис. 1.3. Окно редактирования кода

Окно редактирования кода служит в качестве редактора для ввода и изменения кода процедур приложения. Код внутри модуля организован в виде отдельных разделов для каждого объекта, программируемого в модуле.В окне редактирования доступны два режима представления кода: просмотр отдельной процедуры и всего модуля. Переключение режимов работы окна редактирования кода осуществляется выбором одной из двух кнопок в нижнем левом углу окна редактирования кода (табл.1.1), либо установкой или снятием флажка Просмотр всего модуля (Default to Full Module View) вкладки Редактор (Editor) диалогового окна Параметры (Options), отображаемого на экране командой Сервис/Параметры (Tools/Options) (рис.1.4).

Таблица 1.1. Режимы работы редактора кода

Кнопка

Режим работы

Отдельная процедура

Все процедуры модуля

Рис. 1.4. Диалоговое окно Параметры

Два раскрывающихся списка в верхней части окна редактора кода облегчают ориентацию в процедурах. Левый раскрывающийся список позволяет выбрать управляющий элемент или форму, а правый — содержит список событий, допустимых для выбранного в левом списке объекта. Отметим, что при выборе элемента управления в форме посредством двойного щелчка или перемещении указателя на элемент управления и нажатии кнопки Программа (Veiw Code) открывается окно редактирования кода как раз в том месте, где располагается процедура, связанная с этим элементом управления. Обратный переход от процедуры к объекту управления быстрее всего осуществить нажатием кнопки Объект (Veiw Object).

Интеллектуальные возможности редактора кода

Написание программ существенно облегчается за счет способности редактора кода автоматически завершать написание операторов, свойств и параметров. При написании кода редактор сам предлагает пользователю список компонентов, логически завершающих вводимую пользователем инструкцию. Например, набирая код Range("A1"). после ввода точки на экране отобразится список компонентов (рис.1.5), которые логически завершают данную инструкцию. Двойной щелчок на выбранном элементе из этого списка или нажатие клавиши <Таb> вставляет выбранное имя в код программы. При этом использование клавиши <Таb> вместо мышки иногда предпочтительней, т.к. эта клавиша находится прямо под рукой и нажатие на нее производится только одним движением пальца левой руки, что не требует особого времени и усилий.

Рис. 1.5. Список компонентов

Автоматическое отображение списка компонентов происходит только при установленном флажке Список компонентов (Auto List Members) вкладки Редактор (Editor) диалогового окна Параметры (Options), отображаемого на экране после выбора команды Сервис/Параметры (Tools/Options). Список компонентов можно выводить на экран нажатием комбинации клавиш <Ctrl>+<J>,при этом список отображается как при установленном, так и при снятом флажке Список компонентов (Auto List Members) вкладки Редактор (Editor) диалогового окна Параметры (Options).

Отображение списка компонентов, логически завершающих вводимую инструкцию, является одним из интеллектуальных качеств редактора кода.

Этим качеством интеллектуальные ресурсы редактора кода не исчерпываются. Другим его такого рода качеством является автоматическое отображение на экране сведений о процедурах, функциях, свойствах и методах после набора их имени (рис.1.6).

Рис. 1.6. Отображаемые сведения о вводимой процедуре

Автоматическое отображение на экране сведений о процедурах, функциях, свойствах и методах после ввода их имени происходит только при установленном флажке Краткие сведения (Auto Quick Info) вкладки Редактор (Editor) диалогового окна Параметры (Options), отображаемого на экране после выбора команды Сервис/Параметры (Tools/Options) (см.рис.1.4).

Описанную выше всплывающую подсказку можно также выводить на экран нажатием комбинации клавиш <Ctrl>+<I>.При этом всплывающая подсказка отображается как при установленном, так и при снятом флажке Краткие сведения вкладки Редактор диалогового окна Параметры (Options). Редактор кода также производит автоматическую проверку синтаксиса набранной строки кода сразу после нажатия клавиши <Enter>.Если после набора строки и нажатия клавиши <Enter> строка выделяется красным цветом, то это как раз и указывает на наличие синтаксической ошибки в набранной строке. Эту ошибку необходимо найти и исправить. Кроме того, если установлен флажок Проверка_синтаксиса (Auto Syntax Check) вкладки Редактор (Editor) диалогового окна Параметры (Options), отображаемого на экране посредством выбора команды Сервис/Параметры (Tools/Options) (см.рис.1.4), помимо выделения красным цветом фрагмента кода с синтаксической ошибкой, на экране отображается диалоговое окно, поясняющее, какая возможная ошибка произошла.

Редактор кода обладает еще одной мощной интеллектуальной возможностью, увеличивающей эффективность работы пользователя. Если курсор расположить на ключевом слове языка VBA, имени процедуры, функции, свойства или метода и нажать клавишу <F1>,то на экране появится окно со справочной информацией об этой функции. Обычно в справке имеется пример использования кода, что позволяет быстрее разобраться в ситуации, которая при написании программы озадачила вас.

Работа от примера является одним из краеугольных принципов миропознания и творчества. Стиль работы от примера очень ярко отображен в принципе чайника. Несмотря на всю его шутливость и кажущуюся абсурдность, в нем сформулирован многовековой опыт работы, который очень часто приводит к быстрым и эффективным результатам. Попытаемся описать принцип чайника следующим образом. У программиста спросили, как надо вскипятить воду, если на кухне есть спички, газовая плита, водопроводный кран и пустой чайник, стоящий на кухонном столе. "Тривиально!— ответил программист.— Налейте в чайник воду, зажгите горелку газовой плиты и поставьте на нее чайник. "Тогда программисту задают следующий вопрос: "На кухонном столе стоит чайник с водой, горелка газовой плиты зажжена. Как вскипятить чайник? Элементарно!— отвечает программист.— Надо просто вылить воду из чайника, погасить горелку и мы оказываемся в условиях задачи, которая только что была успешно решена!"

Окно редактирования форм (UserForm)

Для создания диалоговых окон, разрабатываемых приложений в VBA, используются формы. Редактор форм является одним из основных инструментов визуального программирования. Форма в проект добавляется с помощью команды Вставка/Форма (Insert/Form) или нажатием кнопки Вставить UserForm (Insert UserForm) В результате на экран выводится незаполненная форма с панелью инструментов Панель элементов (Toolbox) (рис.1.7).

Рис. 1.7. Окно редактирования форм и панель инструментов Панель элементов

Используя панель инструментов Панель элементов из незаполненной формы, можно сконструировать любое требуемое для приложения диалоговое окно. Размещение нового управляющего элемента в форме осуществляется следующей последовательностью действий:

1. Щелкните значок того элемента, который вы собираетесь разместить в форме.

2. Поместите указатель мыши на то место, где будет располагаться управляющий элемент.

3. Нажмите левую кнопку мыши и, не отпуская ее, растяните появившийся прямоугольник до требуемых размеров.

4. Отпустите кнопку мыши. Элемент управления на нужном место создан.

Размеры формы и расположенных на ней элементов управления можно изменять. Технология изменения размеров стандартная для Windows: выделить изменяемый элемент, разместить указатель мыши на одном из размерных маркеров и протащить его при нажатой левой кнопки мыши так, чтобы объект принял требуемые размеры. Окно редактирования форм поддерживает операции буфера обмена.

Таким образом, можно копировать, вырезать и вставлять элементы управления, расположенные на поверхности формы. Для облегчения размещения и выравнивания элементов управления используется сетка. Активизировать ее можно с помощью вкладки Общие (General) диалогового окна Параметры (Options), вызываемого командой Сервис/Параметры (Tools/Options),там же устанавливается шаг сетки. Кроме того, команды меню Формат (Format) автоматизируют и облегчают процесс выравнивания элементов управления как по их взаимному местоположению, так и по размерам (рис.1.8).

Рис. 1.8. Команды меню Формат

Окно свойств

В окне свойств перечисляются основные установки свойств выбранной формы или элемента управления. Используя это окно, можно просматривать свойства и изменять их установки. Для просмотра свойств выбранного объекта надо либо щелкнуть кнопку Окно свойств (Properties Window) либо выбрать команду Вид/Окно свойств (View/Properties Window)(рис.1.9).

Рис. 1.9. Окно свойств

Окно свойств состоит из двух составных частей: верхней и рабочей. В верхней части окна свойств располагается раскрывающийся список, из которого можно выбрать любой элемент управления текущей формы или саму форму.

Рабочая часть состоит из двух вкладок: По алфавиту (Alphabetic) и По категориям (Categorized),отображающие набор свойств в алфавитном порядке или по категориям. В обоих вкладках свойство Name (имя элемента управления)будет первым. Изменяются значения свойств одним из следующих способов:

- Вводом с клавиатуры значения свойства в соответствующее поле.

- Значения большинства свойств можно выбрать из раскрывающегося списка. Раскрывающийся список активизируется щелчком в соответствующем поле окна свойств.

Окно Просмотр объектов (Object Browser)

Окно Просмотр объектов (Object Browser) вызывается командой Вид/Просмотр объектов (View, Object Browser) или нажатием кнопки Просмотр объектов (Object Browser) (рис. 1.10). В этом окне приведен список всех объектов, которые имеются в системе и которые можно использовать при создании проекта.

Рис. 1.10. Окно Просмотр объектов

Окно Просмотр объектов (Object Browser) состоит из трех основных частей:

1. Раскрывающегося списка Проект/Библиотека (Project/Library) в левом верхнем углу окна. В этом раскрывающемся списке можно выбрать различные проекты и библиотеки объектов. В частности, библиотеки объектов Excel, VBA, Office и VBAProject (объекты пользовательского проекта). Выбор в списке строки <Все библиотеки> (<Аll Libraries>) отображает список объектов всех библиотек.

2. Списка Классы (Classes). После выбора из раскрывающегося списка Проект/Библиотека (Project/Library) просматриваемой библиотеки, например VBA, все классы объектов выбранной библиотеки выводятся в списке Классы (Classes).

3. Списка Компоненты (Members). После выбора класса из списка Классы (Classes) просматриваемой библиотеки, например FileSystem, все компоненты выбранного класса выводятся в списке Компоненты (Members). При выделении строки в этом списке в нижней части окна Просмотр объектов (Object Browser) приводится дополнительная информация о выбранном компоненте. Кроме того, если нажать на кнопку Справка (Help), расположенную на панели инструментов в правой верхней части окна Просмотр объектов (Object Browser), то на экране отобразится окно Справочник Visual_Basic (Microsoft Visual Basic Help) с подробной информацией о выделенном компоненте.

1.2 Основные объекты VBA

ОБЪЕКТ APPLICATION

Объект Application (приложение) является главным в иерархии объектов Excel и представляет само приложение Excel. Он имеет более 120 свойств и 40 методов. Эти свойства и методы предназначены для установки общих параметров приложения Excel. Кроме того, объект Application позволяет вызывать более 400 встроенных функций рабочего листа при помощи конструкции вида:

Application.ФункцияРабочегоЛиста(Аргументы)

Например:

Application.Pi()

Вычисление числа л

Application.Pmt(Аргументы)

Определение постоянных периодических платежей при постоянной процентной ставке с помощью функции ППЛАТ (РМТ)

Application.Sum(Аргументы)

Нахождение суммы значений из ячеек диапазона

Приведем несколько наиболее часто используемых свойств, методов и событий объекта Application.

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

Свойства

Выполняемые действия и допустимые значения

ActiveWorkbook, ActiveSheet ActiveCell

Возвращают активный объект: рабочую книгу, лист, ячейку, диаграмму, диалоговое окно. Свойство ActiveCell содержится в ActiveSheet, а свойства ActiveSheet, ActiveChart и ActiveDialog в ActiveWorkbook.

ActiveChart ActiveDialog

В следующем примере в активной ячейке устанавливается полужирный шрифт и в нее вводится строка текста Отчет за май:

With ActiveCell .Font.Bold = True .Value = "Отчет за май" End With

ThisWorkbook

Возвращает рабочую книгу, содержащую выполняющийся в данный момент макрос. Это свойство может возвращать рабочую книгу, отличную от возвращаемой свойством Active-Workbook, т. к. выполняемый макрос может находиться в неактивной книге

Calculation

Устанавливает режим вычислений. Допустимые значения:

xlCalculationAutomatic (автоматический режим)

xlCalculationManual (вычисления выполняются вручную)

xlCalculationSemiAutomatic (автоматический режим, не распространяется на таблицы)

Caption

Возвращает текст в строке имени главного окна Excel. Установка свойства равным Empty возвращает заголовок, используемый по умолчанию. В следующем примере первая инструкция устанавливает в качестве заголовка окна приложения текст Отчет за 1999 год, а вторая возвращает имя окна, используемое по умолчанию, т. е. Microsoft Excel:

Application.Caption = "Отчет за 1999 год"

Application.Caption = Empty

DisplayAlerts

Допустимые значения: True (отображаются встроенные предупреждения о работе программы) и False (предупреждения не отображаются)

DisplayFormulaBar

Допустимые значения: True (строка формул выводится в окне Excel) и False (строка формул не выводится).

В данном ниже примере установлен режим, при котором строка формул не будет выводиться в окне Excel:

Application.DisplayFormulaBar = False

DisplayScrollBars

Допустимые значения: True (полосы прокрутки видны в окне Excel) и False (полосы прокрутки не отображаются). Например:

Application.DisplayScrollBars = False — строка формул не будет выводиться в окне Excel

DisplayStatusBar

Допустимые значения: True (строка состояния видна в окне Excel) и False (строка состояния не видна). Например:

Application.DisplayStatusBar = True — строка состояния не будет выводиться в окне Excel

EnableCancelKey

Определяет действие при нажатии комбинации клавиш <Ctrl>+<Break>, используемой для прерывания выполнения процедуры. Допустимые значения:

xlDisabled (прерывания программы запрещено)

xllnterrupt (прерывание процедуры разрешено)

xiErrorHandler (прерывание воспринимается как ошибка)

Height

Высота окна приложения в пунктах

Width

Ширина окна приложения в пунктах

Left

Расстояние в пунктах от левой границы окна приложения до левого края экрана

Right

Расстояние в пунктах от правой границы окна приложения до правого края экрана

Top

Расстояние в пунктах от верхней границы окна приложения до верхнего края экрана

ScreenUpdating

Допустимые значения: True (изображение обновляется во время выполнения программы) и False (изображение не обновляется). Задание False в качестве значения свойства ускоряет выполнение процедуры. В конце процедуры свойству ScreenUpdating необходимо присвоить значение True

StatusBar

Выводит заданный текст в строке состояния. Выполнение приведенного ниже примера позволит вывести текст Ввод данных... в строке состояния:

Application.DisplayStatusBar = True Application.StatusBar = "Ввод данных..."

Version

Возвращает номер текущей версии Excel. Применяется для проверки того, что приложение используется в корректной версии. Например:

If Application.Version <> "8.0" Then Exit Sub

WindowState

Устанавливает размер окна. Допустимые значения: xlMaxiinized (максимальный) xlMinimized (минимальный) xlNormal (нормальный) Например: Application.WindowState = xlMaximized — устанавливается максимальный размер окна

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

Методы

Выполняемые действия

Calculate

Вызывает принудительное вычисление во всех открытых рабочих книгах. Например:

Application.Calculate

Run

Запускает на выполнение подпрограмму или макрос. Синтаксис:

Run (Macro, Argl, Arg2, ...)

- Macro — строка с именем макроса

- Argl, Arg2, ... — аргументы передаваемые макросу Например:

Application.Run Macro:= "Расчет" — запускает макрос Расчет

Volatile

Вызывает перевычисление функции пользователя при изменении значений параметров. Например, функция Квадрат будет автоматически пересчитывать результат на рабочем листе при изменении значения аргумента:

Function Квадрат(х)

Application.Volatile

Квадрат = х^2

End Function

Wait

Временно приостанавливает работу приложения без остановки работы других программ.

Синтаксис:

Wait(Time)

- Time — время, в которое предполагается возобновить работу приложения

В следующем примере показывается, как установить время, чтобы возобновление работы приложения началось в 17 часов:

Application.Wait "17:00:00"

OnKey

Устанавливает выполнение специфицированной процедуры при нажатии заданной комбинации клавиш.

Синтаксис:

OnKey(Key, Procedure)

- Procedure — имя выполняемой подпрограммы при нажатии клавиш

- Key — строка, определяющая комбинацию клавиш, которая должна быть нажата. В этой строке можно также указывать специальные клавиши, используя следующие коды:

• <Backspace>—{backspace} или {BS}

• <Break>— (BREAK)

• <CapsLock>— {Capslock}

• <Delete> или <Del> — {DELETE} или (DEL)

• <↓>— {DOWN}

• <End> — {END}

• <Enter> (цифровая клавиатура) — {enter}

• <ESC>- {ESCAPE} ИДИ {ESC}

• <Home> — {home}

• <Ins> или <Insert> — {INSERT}

• <←> — {LEFT}

• <Num Lock> — {numlock}

• <Page Down> — { pgdn }

• <Page Up> — {PGUP}

• <Return> — {RETURN}

• <→> - {RIGHT}

• <Scroll Lock> — {scrolllock}

• <Tab>— {tab}

• <↑>- {UP}

• от <F1> до <F15> - от {F1} до {F15}

Допустимо использование сочетания одновременно нажатых клавиш. С этой целью для перечисленных трех клавиш установлены следующие коды:

• <Shift> - +

• <Ctrl> - -

• <Alt> - %

В примере процедуре Амортизация назначена комбинация клавиш <Ctrl>+<+>, а процедуре ПроцентнаяСтавка — <Shift>+<Ctrl>+<->>:

Application.OnKey "Л{+}", "Амортизация"

Application.OnKey "+"{RIGHT}", "ПроцентнаяСтавка"

OnRepeat и

OnUndo

Определяет процедуру, выполняемую при выборе команды Правка, Повторить (Edit, Repeat) и Правка, Отменить (Edit, Undo) соответственно.

Синтаксис:

OnRepeat(Text, Procedure)

OnUndo(Text, Procedure)

- Text — строка, задающая текст команды Правка, Повторить (Edit, Repeat)

- Procedure — имя подпрограммы, выполняемой при выборе команды Правка, Повторить (Edit, Repeat)

OnTime

Назначает выполнение процедуры на определенное время. Синтаксис:

OnTime(EarliestTime, Procedure, LatestTime, Schedule)

  • EarliestTime — момент запуска процедуры

  • Procedure — имя процедуры

  • LatestTime — если на момент запуска процедуры, Excel не может ее запустить в силу того, что выполняется другое действие, то параметр LatestTime определяет последнее время ее запуска. Если этот аргумент опущен, то Excel будет ждать до тех пор, пока не сможет выполнить эту процедуру

  • Schedule — допустимые значения: True (выполнение процедуры откладывается на сутки) и False (во всех остальных случаях)

В следующем примере демонстрируется, как запустить процедуру Очистка на выполнение через 15 секунд от текущего времени:

Application.OnTime Now + TimeValue("00:00:15"), "Очистка"

Quit

Закрывает приложение. Например:

Application.Quit

События объекта Application

Событие

Когда возникает событие

NewWorkbook

При создании новой рабочей книги

WorkbookActivate

При активизации рабочей книги

WorkbookBeforeclose

Перед закрытием рабочей книги

WorkbookBeforePrint

Перед печатью рабочей книги

WorkbookBeforeSave

Перед сохранением рабочей книги

WorkbookDeactivate

Когда активная книга теряет фокус

WorkbookNewSheet

При добавлении нового листа в рабочую книгу

WorkbookOpen

При открытии рабочей книги

ОБЪЕКТ WORKBOOK И СЕМЕЙСТВО WORKBOOKS

В иерархии Excel объект workbook (рабочая книга) идет сразу после объекта Application и представляет файл рабочей книги. Рабочая книга хранится либо в файлах формата XLS (стандартная рабочая книга) или XLA (полностью откомпилированное приложение). Свойства и методы рабочей книги позволяют работать с файлами.

Свойства объекта Workbook и семейства Workbooks

Свойства

Выполняемые действия и допустимые значения

ActiveSheet

Возвращает активный лист книги. Например:

MsgBox "Имя активного листа " & ActiveSheet.Name — выводит в диалоговом окне имя активного рабочего листа

ActiveDialog

Возвращает активное диалоговое окно

ActiveChart

Возвращает активную диаграмму

Sheets

Возвращает семейство всех листов книги

Worksheets

Возвращает семейство всех рабочих листов книги

Charts

Возвращает семейство всех диаграмм книги (которые не внедрены в рабочие листы)

Count

Возвращает число объектов семейства workbooks

HasPassword

Допустимые значения: True (если у документа имеется пароль защиты), False (в противном случае)

Saved

Допустимые значения: True (если не производились изменения в документе со времени его последнего сохранения), False (в противном случае)

MailSystem

Возвращает имя инсталлированных на компьютере средств работы с электронной почтой. Допустимые значения:

О xlNoMailSystem (не установлена система электронной почты) □ xlMAPI (установлена система Microsoft Mail)

□ xlPowerTalk (установлена система Apple PowerTalk Mail, на компьютерах Macintosh).

В следующем примере проверяется, инсталлирована ли электронная почта. Если электронная почта не установлена, то отображается соответствующее сообщение:

If Application.MailSystem <> xlMAPI Then MsgBox "Microsoft Mail неинсталлирован" End If

WriteReserved

Допустимые значения: True (если документ закрыт для записи), False (в противном случае)

Методы объекта Workbook и семейства Workbooks

Методы

Выполняемые действия

Activate

Активизирует рабочую книгу так, что ее первый рабочий лист становится активным.

Например:

Workbook.Activate

Add

Создает новый объект для семейства Workbook!5. Синтаксис:

Add(Template)

- Template — задает шаблон, на основе которого создается новая рабочая книга. Допустимые значения:

xlWBATChart, xlWBATExcel4IntlMacroSheet, xlWBATExcel4MacroSheet или xlWBATWorksheet.

Если аргумент Template опущен, то создается новая рабочая книга с количеством листов, заданных свойством

SheetsInNewWorkbook

Protect

Защищает рабочую книгу от внесения в нее изменений. Синтаксис:

Protect(Password, Structure, Windows)

- Password — строка, используемая в качестве пароля для защиты книги

- structure— допустимые значения True (защищена структура книги, т. е. взаимное расположение листов) и False (не защищена)

- windows — допустимые значения True (защищено окно книги) и False (не защищено)

В следующем примере устанавливается защита для активной рабочей книги:

ActiveWorkbook.Protect Password:= "ВинниПух"

Unprotect

Снятие защиты с рабочей книги.

Синтаксис:

Unprotect(Password)

- Password — строка, используемая в качестве пароля для защиты листа

В следующем примере снимается защита с активной рабочей книги:

ActiveWorkbook.Unprotect Password:= "ВинниПух "

Close

Закрытие рабочей книги

Open

Открытие существующей рабочей книги

OpenText

Открытие текстового файла, содержащего таблицу данных

Save

Сохранение рабочей книги

SaveAs

Сохранение рабочей книги в другом файле.

Синтаксис:

SaveAs(Filename) \

- Filename — строка, указывающая имя файла, в котором будет сохранена рабочая книга

В следующем примере активная рабочая книга сохраняется в файле с именем НоваяВерсия:

ActiveBook.SaveAs Filename:= "НоваяВерсия"

SaveAsCopy

Сохранить рабочую книгу в другом файле, оставляя рабочую книгу в памяти с прежним именем.

Синтаксис:

SaveAs(Filename, FileFormat)

- Filename — строка, указывающая имя файла, в котором будет сохранена рабочая книга

В следующем примере активная рабочая книга сохраняется в файле с именем ЗапаснаяВерсия:

ActiveBook.SaveAsCopy Filename:= "ЗапаснаяВерсия"

PrintPrevie

Предварительный просмотр

Printout

Печать содержимого рабочей книги

SendMail

Отсылка почты используя встроенные средства Microsoft Mail (MAPI).

Синтаксис:

SendMail(Recipients, Subject, ReturnReceipt)

- Recipients — строка или массив строк, перечисляющих получателей

- Subject — строка, специфицирующая тему сообщения Optional Variant.

- ReturnReceipt — допустимые значения True (требуется уведомление о получении сообщения) и False (в противном случае)

В следующем примере рабочая книга отсылается по электронной почте получателю Порфирию Заковыркину:

ThisWorkbook.SendMail recipients:= " Порфирий Заковыркин"

События объекта Workbook и семейства Workbooks

Событие

Когда возникает событие

BeforeClose

При закрытии рабочей книги

BeforePrint

Перед печатью рабочей книги '

BeforeSave

Перед сохранением рабочей книги |

Deactivate

Когда рабочая книга теряет фокус

NewSheet

При добавлении нового листа

Open

При открытии рабочей книги

SheetActivate

При активизации любого рабочего листа

SheetDeactivate

Когда рабочий лист теряет фокус

ОБЪЕКТ WORKSHEET И СЕМЕЙСТВО WORKSHEETS

В иерархии Excel объект worksheet идет сразу после объекта workbook и представляет рабочий лист.

Приведем несколько наиболее часто используемых свойств и методов объекта Worksheet.

Свойства объекта Worksheet и семейства Worksheets

Свойства

Выполняемые действия

Name

Возвращает имя рабочего листа. В следующем примере первому листу активной рабочей книги присваивается имя Итоги за декабрь:

Worksheets(1). Visible = "Итоги за декабрь"

Visible

Допустимые значения: True (рабочий лист выводится на экран), False (рабочий лист не видим, т. е. скрыт, но его можно отобразить на экране с помощью команды Формат, Лист, Отобразить (Format, Sheet, Show)) и xlveryHidden (рабочий лист скрыт, и его можно отобразить на экране только программно).

В следующем примере первый рабочий лист активной книги делается видимым:

Worksheets(1). Visible = False

UsedRange

Возвращает диапазон, т. е. объект Range, который содержит данные.

В следующем примере очищается диапазон первого рабочего листа с данными:

Worksheets(I). UsedRange. Clear

StandardHeigl" ActiveCell Intersect

it Возвращает стандартную высоту всех строк рабочего листа Возвращает активную ячейку активного рабочего листа

Возвращает диапазон, являющийся пересечением нескольких диапазонов.

Синтаксис:

Intersect(rangel, range2, ...)

В следующем примере выбирается пересечение диапазонов

Al: D3 и СЗ : D4 , т. е. диапазон СЗ : D3 :

Intersect(Range("Al:D3"), Range("C3:D4")).Select

Union

Возвращает диапазон, являющийся объединением нескольких диапазонов.

Синтаксис:

Union(rangel, range2, ...)

В следующем примере выбирается объединение двух диапазонов А1:В2 и C3:D4 :

Union(Range("A1:B2"), Range ("C3:D4")) .Select

Методы объекта Worksheet и семейства Worksheets

Методы

Выполняемые действия

Activate

Активизирует указанный рабочий лист. Например:

Worksheets(I). Activate

Add

Создает новый рабочий лист.

Синтаксис:

Add(Before, After, Count, Type)

- Before — указывает лист, перед которым будет размещен новый рабочий лист

- After — указывает лист, после которого будет размещен новый рабочий. Если аргументы Before и After опущены, то новый лист размещается перед активным листом

- Count — число добавляемых листов, по умолчанию имеет значение 1

- Туре — указывает тип добавляемого листа. Допустимые значения: xiworksheet (по умолчанию), xlExcel4MacroSheet и xlExcel4IntlMacroSheet.

Например:

ActiveWorkbook.Worksheets.Add

— вставляется новый лист перед активным листом активной рабочей книги

Delete

Удаляет рабочий лист. Например:

Worksheets(I). Delete — удаляется первый рабочий лист из активной рабочей книги

Protect

Защищает рабочий лист от внесения в него изменений. Синтаксис:

Protect(Password, DrawingCbjects, Contents, Scenarios, UserlnterfaceQnly)

- Password — строка, используемая в качестве пароля для защиты листа

- DrawingObjects —допустимые значения: True (графические объекты защищены) и False (графические объекты не защищены). По умолчанию используется значение False

□ Contents — допустимые значения: True (ячейки защищены) и False (ячейки не защищены). По умолчанию используется значение True

- Scenarios—допустимые значения: True (сценарии защищены) и False (сценарии не защищены). По умолчанию используется значение True

- UserlnterfaceOnly — допустимые значения: True (лист защищен от изменений со стороны пользователя, но не подпрограммы VBA) и False (лист защищен от изменений со стороны как пользователя, так и подпрограммы VBA). По умолчанию используется значение False

В следующем примере установлена полная защита активного рабочего листа от любых изменений со стороны пользователя:

ActiveSheet.Protect Password:="Секрет", DrawingObjects:=True, Contents:=True, Scenarios:=True

Unprotect

Снятие защиты с рабочего листа.

Синтаксис:

Unprotect(Password)

- Password — строка, используемая в качестве пароля для защиты листа

В следующем примере снимается защита с активного рабочего листа:

ActiveSheet.Protect Password:="Секрет"

Copy

Копирование рабочего листа в другое место рабочей книги. Синтаксис:

Copy(Before, After)

- Before — рабочий лист книги, перед которым вставляется данный

- After — рабочий лист, после которого вставляется данный

Одновременно допустимо использование только одного из аргументов.

В следующем примере Лист1 активной рабочей книги копируется после Лист3 той же рабочей книги:

Worksheets("Лист1").Сору

after:=Worksheets("Лист3")

Move

Перемещение рабочего листа в другое место рабочей книги.

Синтаксис:

Move(Before, After)

- Before — лист рабочей книги, перед которым вставляется данный

- After — лист, после которого вставляется данный

Одновременно допустимо использование только одного из аргументов.

В примере Лист1 активной рабочей книги перемещается перед Лист3 той же рабочей книги:

Worksheets("Лист1").Move Before:=Worksheets ("Лист3")

Evaluate

Преобразует выражение в объект или значение. Используется при вводе формул и ячеек из диалоговых окон.

В следующем примере в поле ввода первого появившегося диалогового окна вводится ссылка на ячейку, например А1, процедура считывает значение из этой ячейки и отображает его в диалоговом окне. После этого в поле ввода следующего диалогового окна надо ввести какое-нибудь арифметическое выражение, например sin(1)^2. Процедура вычислит значение этого выражения и отобразит в диалоговом окне:

Sub ДваПримераДляEvaluate()

' Ввод адреса ячейки

Ячейка = InputBox("Введите имя ячейки")

' Считывание значения из ячейки с указанным адресом

Значение = Evaluate(Ячейка).Value

' Вывод считанного значения в диалоговое окно

MsgBox CStr(Значение)

' Ввод в диалоговое окно формулы, например, sin(1)^ 2

Функция = InputBox("Введите функцию")

' Вычисление значения по введенной формуле

Значение = Evaluate(Функция)

' Вывод найденного значения в диалоговом окне

MsgBox CStr(Значение)

End Sub

События объекта Worksheet

Событие

Когда возникает событие

BeforeClose

При закрытии рабочей книги

BeforePrint

Перед печатью рабочей книги

BeforeSave

Перед сохранением рабочей книги

Deactivate

Когда рабочая книга теряет фокус

NewSheet

При добавлении нового листа

Open

При открытии рабочей книги

SheetActivate

При активизации любого рабочего листа

SheetDeactivate

Когда рабочий лист теряет фокус

ОБЪЕКТЫ RANGE И SELECTION

В иерархии Excel объект Range (диапазон) идет сразу после объекта Worksheet. Объект Range является одним из ключевых объектов VBA. Объект selection (выбор) возникает в VBA двояко — либо как результат работы метода select, либо при вызове свойства selection. Тип получаемого объекта зависит от типа выделенного объекта. Чаще всего объект selection принадлежит классу Range и при работе с ним можно использовать свойства и методы объекта Range. Интересной особенностью объектов Range и selection является то, что они не являются элементами никакого семейства объектов.

Адресация ячеек

При работе с объектом Range необходимо помнить, как в Excel ссылаются на ячейку рабочего листа. Имеются два способа ссылки на ячейки рабочего листа: относительная адресация (т. е. когда начало координат, задающее нумерацию строк и столбцов, связывается с объектом, вызвавшим Range) и абсолютная адресация.

Относительная адресация:

Формат А1

Имя ячейки состоит из имени столбца (их 256 — А, В, ..., Z, АВ, ..., HZ, IA, ..., IV) и номера (1, ...., 16384). Например, А1, С2

Формат R1C1

Адресация задается индексом строки и индексом столбца. Например, R1C1, R2C3

Абсолютная адресация:

Формат А1

Признаком абсолютной адресации является знак "$", предшествующий имени строки (абсолютной адресации на строку) или столбца (абсолютной адресации на столбец). Например, $А10, А$10 и $А$10 задают абсолютную адресацию на столбец А, строку 10 и ячейку А10 соответственно

Формат R1C1

Указывается смещение по отношению к активной ячейке. Смещение приводится в квадратных скобках, причем знак указывает на направление смещения. Например, если активной ячейкой является R2C3, то R[1]C[-1] дает ссылку на ячейку R3C2

Адресация ячейки рабочего листа является лишь частью полного адреса ячейки, который в общем случае включает имя рабочего листа и адрес книги. При задании полного адреса за именем листа следует знак "!", а адрес книги заключается в скобки. Например,

А1

Лист2!А1

[МояКнига.xls]Лист2!А1

В первой строке данного примера дана относительная ссылка на ячейку ai активного рабочего листа, во второй — на ячейку A1 рабочего листа Лист2 активной книги, а в третьей на ячейку A1 рабочего листа лист2 книги МояКнига.xls текущего рабочего каталога.

Задание групп строк и столбцов с помощью объекта Range

Если в диапазоне указываются только имена столбцов или строк, то объект Range задает диапазон, состоящий из указанных столбцов или строк. Например, Range ("A:C") задает диапазон, состоящий из столбцов A, B и C, а Range ("2: 2") — из второй строки. Другим способом работы со строками и столбцами являются методы Rows (строки) и Columns (столбцы), возвращающие коллекции строк и столбцов. Например, столбцом A является Columns (1) , а второй строкой — Rows (2) .

Связь объекта Range и свойства Cells

Так как ячейка является частным случаем диапазона, состоящим только из единственной ячейки, объект Range также позволяет работать с ней. Объект Cells (ячейки) — это альтернативный способ работы с ячейкой. Например, ячейка А2 как объект описывается Range ("A2") или ceils (1,2). В свою очередь объект cells, вкладываясь в Range, также позволяет записывать диапазон в альтернативном виде, который иногда удобен для работы, а именно.

Range("А2:СЗ") И Range(Cells(I,2), Cells(3,3)) определяют один и тот же диапазон.

Свойства и методы объекта Range

Объект Range позволяет сочетать гибкость VBA и мощь рабочего листа Excel. Более 400 встроенных функций рабочего листа существенно упрощают и делают более наглядным программирование на VBA.

Далее приводятся наиболее часто используемые свойства и методы объекта Range.

Перечислим основные свойства объекта Range.

Value

Возвращает значение из ячейки или в ячейки диапазона. В данном примере переменной х присваивается значение из ячейки С1:

х = Range("C1").Value

В следующем примере в диапазон А1 : В2 введена 1;

Range("A1:B2").Value =1

Name

Возвращает имя диапазона. В данном примере диапазону А1:В2 Присваивается имя Итоги:

Range("А1:В2").Name = "Итоги"

Count

Возвращает число объектов в наборе. В данном примере переменной х присваивается значение, равное числу строк диапазона А1: В2:;

х = Range("A1:B2").Rows.Count

CurrentRegion

Возвращает число строк текущего диапазона. Текущим является диапазон, ограниченный пустыми строками и столбцами и содержащий данный элемент. В следующем примере переменной у присваивается значение, равное числу строк в текущем диапазоне, содержащем ячейку А1:

у = Range("A1").CurrentRegion.Rows.Count

WrapText

Позволяет переносить текст при вводе в диапазон. Допустимые значения True и False. В следующем примере

в ячейку В2 вводится текст «Длинный текст» и в этой ячейке устанавливается режим ввода текста с переносом:

With Range("B2")

.Value = "Длинный текст"

.WrapText = True

End With

SntireColumn, EntireRow

Возвращает столбец и строку соответственно. В данном примере очищается содержимое строки и выделяется столбец с активной ячейкой:

ActiveCell.EntireRow.Clear

ActiveCell.EntireColumn.Select

ColumnWidth, RowHeight

Возвращает ширину столбцов и высоту строк диапазона I соответственно

Comment

Возвращает объект comment (примечание), который связан с левым верхним углом диапазона при отображении на экране. Объект comment является элементом семейства Соmments. Метод Addcomment, примененный к диапазону, создает новое примечание.

Среди методов объекта Comment отметим только метод Text, который задает текст, выводимый в примечании.

Синтаксис:

Text(Text, Start, Overwrite)

- Text — строка, выводимая в качестве примечания

- start — с какого символа вводится текст в уже существующее примечание. Если аргумент опущен, то из примечания удаляется весь ранее введенный текст

- Overwrite — допустимые значения: True (вводимый текст записывается поверх уже существующего) и False (вводимый текст вставляется в уже существующий)

Среди свойств объекта comment отметим только свойство visible, устанавливающее отображение примечания при активизации диапазона, имеющего определенное примечание. В качестве примера рассмотрим следующие инструкции, которые создают и отображают примечание ячейки В3, поясняющее запланированное событие (рис. 3.1):

With Range("B3").AddComment

.Text Text:= _

"Чрезвычайно важно!" & Chr(10) &_

"Про это никак нельзя забыть!"

.Visible = True

End With

Рис. 2.1. Пример отображения примечания на рабочем листе

Font

Возвращает объект Font (шрифт)

Объект Font имеет следующие свойства:

- Name — строка, указывающая имя шрифта, например "Arial Cyr"

- FontStyle — стиль, возможен Regular (обычный), Bold (полужирный), Italic (курсив), Bold italic (полужирный курсив)

- size — размер

- strikethrough — допустимы два значения: True (буквы имеют линию по центру, как будто они перечеркнуты) и False (не имеют линии по центру)

– Superscript — допустимы два значения: True (текст используется как верхний индекс) и False (не используется как верхний индекс)

- Subscript — допустимы два значения: True ; (текст используется как нижний индекс) и False (не используется как нижний индекс)

- underline — устанавливает тип подчеркивания, допустимыми являются значения:

• xlNone (нет подчеркивания);

• xlSingle (одинарное, по значению)

• xlDouble (двойное, по значению)

• xlSingleAccounting (одинарное, по ячейке)

• Accounting (двойное, по ячейке)

Например, в следующем примере устанавливается для диапазона A1:В2 полужирный шрифт, красного цвета и с высотой символов 14:

With Range("Al:B2").Font

.Size = 14

.FontStyle = Bold

.Colorlndex = 3

End With

Formula

Возвращает формулу в формате Al. Например, следующая инструкция вводит в ячейку С2 формулу =$A$4+$A$10

Range("C2").Formula = "=$А$4+$А$10"

FormulaArray

Возвращает формулу диапазона в формате Al. В отличие от обыкновенной формулы рабочего листа, формула диапазона вводится на рабочем листе не посредством нажатия на клавишу <Enter>, а с помощью комбинации клавиш <Ctrl>+<Shift>+<Enter>. Следующая инструкция вводит в диапазон E1:E3 формулу {=Sum(Al:A3*Bl:B3)}:

Range("El:E3").FormulaArray = "=Sum(Al:A3*Bl:B3)"

FormulaHidden

Допустимые значения: True (формула спрятана, если рабочий лист или книга защищены) и False (в противном случае). Например, следующая инструкция скрывает формулы в столбце A:

Columns("A").FormulaHidden = True

FormulaLocal

Возвращает неанглоязычные (местные) формулы в формате А1. Например, следующая инструкция вводит в Ячейку В2 формулу =СУММ(С1:С4):

Range("B2"). FormulaLocal = "=СУММ(С1:С4)"

FormulaRlCl

Возвращает формулу в формате R1C1. Например,

Range("Bl").FormulaRlCl = "=SQRT(R3C2)"

FormulaRlClLocal

Возвращает неанглоязычные формулы в формате R1C1

Text

Возвращает содержание диапазона в текстовом формате

HorizontalAlignment

Горизонтальное выравнивание. Допустимые значения:

- xlGeneral (обычное выравнивание, зависящее от типа вводимых значений)

- xlCenter (выравнивание по центру)

- xlRight (выравнивание по правому краю)

-xlLeft (выравнивание по левому краю)

- xlJustify (выравнивание по ширине)

- xlCenterAcrossSelection (выравнивание по центру в выделенном диапазоне)

- xlFill (выравнивание по ширине)

VerticalAlignitient

Вертикальное выравнивание. Допустимые значения:

- xlBottom (выравнивание по нижнему краю),

- xlCenter (выравнивание по центру),

- xlJustify (выравнивание по высоте),

- xlTop (выравнивание по верхнему краю)

Orientation

Ориентация. Допускается либо угол поворота текста в градусах от —90° до 90°, либо одно из допустимых значений:

- xlDownward (выравнивание по левому краю сверху вниз, соответствует углу —90°)

- xlHorizontal (выравнивание по горизонтали, соответствует нулевому углу)

- xlUpward (выравнивание по правому краю снизу вверх, соответствует углу 90°)

- xlVertical (выравнивание по вертикали, нет соответствия в градусах)

ShrinkToFit

Допустимые значения: True (автоматическое изменение шрифта так, чтобы текст помещался в ячейку) и False (в противном случае)

Ниже приведены наиболее часто используемые методы объекта Range.

Address

Возвращает адрес ячейки.

Синтаксис:

Address(rowAbsolute, columnAbsolute, _

referenceStyle, external, relativeTo)

Аргументы:

-rowAbsolute — допустимы два значения True и False, если используется значение True или аргумент опущен, то возвращается абсолютная ссылка на строку

- columnAbsolute — допустимы два значения True и False, если используется значение True или аргумент опущен, то возвращается абсолютная ссылка на столбец

- referenceStyle — допустимы два значения x1A1 и : x1R1c1, если используется значение x1A1 или аргумент опущен, то возвращается ссылка в виде формата А1

- external — допустимы два значения True и False, если используется значение False или аргумент опущен, то возвращается относительная ссылка

- relativeTo — В случае, если rowAbsolute и columnAbsolute равны False, a referenceStyle — x1Rlc1, то данный аргумент определяет начальную ячейку диапазона, относительно которой производится адресация

Следующий пример показывает различные результаты i адресации.

MsgBox Cells(1, 1).Address()

' В диалоговом окне отображается адрес $А$1

MsgBox Cells(1, 1).Address(rowAbsolute:=False)

' В диалоговом окне отображается адрес $А1

MsgBox Cells(1, 1).Address(referenceStyle:=x1R1C1)

' В диалоговом окне отображается адрес R1C1

AutoFit

Автоматически настраивает ширину столбца и высоту строки

Clear, ClearCoiranents, ClearContents, ClearFormats и

ClearNotes

Метод clear очищает диапазон. ; В следующем примере очищается диапазон A1:G37.

Range("A1:G37").Clear

Методы ClearCoiranents, ClearContents, ClearFormats и ClearNotes очищают в диапазоне комментарии, содержание, форматы и примечания соответственно.

Сору

Копирует диапазон в другой диапазон или в буфер обмена.

Синтаксис:

Copy(destination)

- Аргумент destination определяет диапазон, куда копируется данный диапазон. Если аргумент destination опущен, то копирование происходит в буфер обмена.

В данном примере диапазон А1: D4 рабочего листа лист1 копируется в диапазон Е5:Н8 листа Лист2:

Worksheets("Лист!").Range("Al:D4").Сору destination:=Worksheets("Лист2").Range("E5")

Cut

Копирует диапазон с удалением в указанный диапазон или в буфер обмена.

Синтаксис:

Cut(destination)

- Аргумент destination определяет диапазон, в который копируется данный диапазон. Если аргумент destination опущен, то диапазон копируется в буфер обмена.

В данном примере диапазон А1:D4 рабочего листа Лист1 копируется с удалением в буфер обмена:

Worksheets{"Лист1").Range("Al:D4").Cut

Delete

Удаляет диапазон. В данном примере удаляется третья строка активной рабочей страницы:

Rows(3).Delete

Columns, Rows

Возвращают соответственно семейства столбцов и строк, из которых состоит диапазон.

В следующем примере переменным i и j присваиваются значения, равные количеству столбцов и строк в выделенном диапазоне соответственно:

i = Selection.Columns.Count

j = Selection.Rows.Count

Insert

Вставка ячейки или диапазона ячеек. i В следующем примере вставляется новая строка перед i четвертой строкой рабочего листа Лист1: :

Worksheets("Лист1").Rows(4).Insert i

Offset

Возвращает диапазон, смещенный относительно данного на величины, специфицированные в аргументах.

Синтаксис:

Offset(rowOffset, columnOffset)

Аргументы:

- rowOffset — целое число, указывающее сдвиг по строкам

- columnOffset — целое число, указывающее, сдвиг по столбцам

Например, в следующем примере активизируется ячейка, расположенная на три строки ниже и на два столбца левее относительно предыдущей активной ячейки:

ActiveCell.Offset(rowOffset:=3, columnOffset:=-2).Activate

Select

Выделение диапазона

PasteSpecial

Специальная вставка из буфера обмена.

Синтаксис:

PasteSpecial(paste, operation, skipBlanks, transpose)

Аргументы:

- Paste — определяет ту часть содержимого буфера обмена, которая должна быть вставлена в диапазон. Допустимые значения:

• xlAll (все)

• xlFormulas (формулы)

• xlValues (значения)

• xlFormats (форматы)

• xlNotes (примечания)

• xlAllxceptBorders (без рамки)

- Operation — определяет операции. Допустимые значения:

• xlNone (нет)

• xlAdd (сложить)

• xlSubtract (вычисть)

• xlMultiply (умножить)

• xiDivide (разделить)

- skipBlanks — допустимые значения: True (пустые ячейки при вставке не учитываются) и False (пустые ячейки учитываются)

- Transpose — допустимые значения True (диапазон выводится транспонированным) и False (не транспонированным)

В приведенном ниже примере данные из диапазона C1:C5 рабочего листа лист1 вставляются в диапазон D1:D5 того же листа, причем они не заменяют уже существующие данные в диапазоне D1:D5, а прибавляются к ним данные из диапазона C1:C5:

Worksheets("Лист1").Range("C1:C5").Copy

Worksheets ("Лист1") .Range ("Dl:D5"). PasteSpecial

operation:=xlAdd

Метод PasteSpecial программирует выполнение на рабочем листе команды Правка, Специальная вставка (Edit, Paste Special). Аргументы метода PasteSpecial соответствуют установкам диалогового окна Специальная вставка (Paste Special), отображаемого с помощью этой команды (рис. 3.2)

Рис. 2.2. Диалоговое окно Специальная вставка

AddComment

Добавляет примечание к диапазону.

Синтаксис:

AddComment (Text)

- Text — строковое выражение добавляемое в качестве примечания : В следующем примере создается примечание внимание ячейки A1 активного рабочего листа:

Range("А1").AddComment "Внимание!"

Соседние файлы в предмете Информатика