- •Часть VI
- •Глава 6.1 Создание приложений с помощью vba Возможности Visual Basic
- •Редактор Visual Basic (vbe)
- •Управление проектами в vbe
- •Глава 6.2 Основы программирования на ув6 Работа с переменными
- •Использование констант
- •Типы данных Object и Variant
- •Простейшие конструкции и операторы
- •Конструкции управления
- •Разновидности циклов
- •Работа с массивами
- •Работа со строками
- •Работа с датой и временем
- •Пользовательские процедуры и функции
- •Sub название процедуры (параметры) операторы
- •Function название функции (параметры) [As тип] операторы
- •Работа с записями
- •Работа с файлами
- •Input(число, номер)
- •Глава 6.3 Объектные модели
- •Объектная модель vba
- •Объектная модель Microsoft Office 2000
- •Объектная модель Microsoft Word 2000
- •Объектная модель Microsoft Excel 2000
- •Объектная модель Microsoft Access 2000
Управление проектами в vbe
Проектом называется набор модулей, которые используются для разработки приложения. В состав проекта входят модули следующих категорий:
• Объекты приложения;
• Формы;
• Стандартные модули;
• Модули классов.
Объекты приложения Office. Представляют собой один или несколько документов того приложения Office, из которого был открыт редактор Visual Basic. Например, если таким приложением является Word, то категория называется Microsoft Word Objects.
413
Формы. В данной категории находятся пользовательские формы, составляющие их элементы, а также объявляемые переменные, константы, процедуры обработки событий и пользовательские процедуры и функции. Для каждой формы проекта создается отдельный модуль.
Стандартные модули. Их содержимым являются процедуры, функции, а также объявляемые переменные и константы, которые можно использовать в других модулях данного приложения.
Модули классов. Предназначены для создания разработчиком собственных классов с описанием их методов и свойств. Модули классов похожи на модули форм, но, в отличие от них, не имеют отображаемого пользовательского интерфейса.
Все открытые проекты и список составляющих их файлов можно увидеть в окне Project (см. рис. 6.13), кнопки которого позволяют выполнять следующие действия:
Открывать окно кода для выбранной формы;
Показывать выбранную форму;
Выводить или прятать категории проекта, показываемые в виде папок (например, папка Forms).
Для того чтобы добавить форму (или какой-либо другой объект) в открытый проект, необходимо в меню Insert выбрать пункт
User Form (пользовательская форма) или нажать кнопку
на стандартной панели.
При необходимости удаления какого-либо элемента из проекта следует:
1. Выбрать в окне Project название соответствующего элемента (формы или модуля).
2. Выполнить команду Remove меню Project или контекстного меню выбранного элемента.
414
Глава 6.2 Основы программирования на ув6 Работа с переменными
Переменные в программе создаются для того, чтобы хранить какие-либо данные. Перед тем как использовать переменную, ее необходимо описать. Данное действие осуществляется при помощи оператора следующего вида:
Dim переменная [As mun]
В этом операторе:
Dim - ключевое слово, свидетельствующее о том, что осуществляется объявление переменной;
As - служебное слово, используемое при обозначении типа данных для объявляемой переменной;
Переменная — имя переменной, которая объявляется;
Тип - тип данных для указанной переменной.
В одном операторе можно одновременно описать несколько переменных, указывая каждую последующую через запятую.
В языках программирования ключевыми (служебными) словами называются такие слова, которые используются только для описания каких-либо операторов и не могут быть использованы программистом ни в каких других целях. В частности ключевые слова нельзя использовать в качестве имен для переменных в программе. Редактор Visual Basic настроен таким образом, что при написании текста программы в окне кода все используемые ключевые слова по умолчанию будут обозначаться синим цветом, в то время как весь остальной текст изображается черным. В этом случае программист легко может определить, являются ли те слова, которые он планирует использовать, например, в качестве имен для переменных, ключевыми словами Visual Basic или нет.
Существует несколько ограничений на имена используемых в программе переменных:
• имя должно начинаться только с латинской буквы;
• в имени не должно быть точек, пробелов и русских букв;
• необходимо соблюдать уникальность имен переменных в рамках одной рассматриваемой процедуры:
• количество символов в имени не должно быть более 255. -
415
Зачастую для повышения информативности используемых переменных программисты используют в именах так называемые префиксы, которые определяют принадлежность сохраняемых в них данных к определенному типу (см. табл. 6.5).
В том случае, когда при описании переменной программист не указывает тип данных, например:
Dim Variable
то создаваемая переменная автоматически будет иметь тип Variant (произвольный). Это означает, что в ней может храниться информация любого типа, однако данная переменная будет занимать значительно больше места в памяти, чем переменная любого другого типа. Поэтому, если заранее известно о том, какого рода информация должна храниться в описываемой переменной, то для нее следует указывать такой тип из всех подходя-
416
щих, который требует меньше всего места в памяти. В табл. 6.6 приведено описание всех типов данных, которые используются в Visual Basic.
417
Рассмотренный способ объявления переменных носит название явного. Кроме приведенного варианта с использованием ключевого слова Dim, существует еще несколько способов:
Private переменная [As тип]
Static переменная [As тип]
Public переменная [As тип]
В этих операторах применяются следующие ключевые слова Visual Basic: Private, Static, Public, которые влияют на область видимости объявляемой переменной (область программы, в которой возможно ее использование). Другими словами, переменная может использоваться только в конкретной процедуре, во всех процедурах какого-либо определенного модуля или в любой процедуре данного проекта.
В том случае, когда переменная объявляется с ключевым словом Dim, то это означает, что областью ее использования будет только та процедура, в которой она была описана. Такие переменные называются локальными (закрытыми). При этом после выполнения данной процедуры их значения будут потеряны. Эти переменные удобно использовать, к примеру, в качестве счетчиков циклов. Если в нескольких процедурах необходимо выполнять циклы, то счетчикам для них можно давать одно и то же имя, например, intCounter. В этом случае не будет возникать конфликт имен, который происходит, когда в программе объявляются несколько переменных с одними и теми же именами, имеющими одинаковую область видимости.
Когда объявление переменной в процедуре осуществляется при помощи ключевого слова Static, то она также будет локальной. Отличие от оператора Dim заключается в том, что в этом случае после очередного выполнения данной процедуры ее последнее значение не будет потеряно. Этот оператор удобно использовать при необходимости сохранения значения какой-либо локальной переменной после очередного выполнения процедуры.
Если нужно, чтобы значение переменной было доступно в нескольких процедурах одного модуля, то в этом случае следует использовать оператор Private. Причем объявление переменной необходимо осуществлять в разделе Declarations текущего модуля (см. рис. 6.14).
418
Когда нужно использовать какую-либо переменную, которая доступна всем модулям данного проекта, то ее следует объявлять с использованием ключевого слова Public.
Такие переменные называются глобальными (открытыми) и являются противоположностью тех, которые объявляются оператором Private. Глобальные переменные также должны описываться в разделе Declarations открытого модуля.
Существует еще один способ объявления переменных, при котором вместо ключевого слова As с последующим указанием типа используется так называемый суффикс типа данных, который добавляется в конец имени описываемой переменной. Перечень всех суффиксов и соответствующих им названий типов приведен в табл. 6.7.
419
Если при описании переменной использовать приведенные выше суффиксы, то в этом случае оператор для объявления открытой переменной целого типа будет выглядеть следующим образом:
Public Counter%.
Итак, для определения типа переменной можно использовать как префиксы, так и суффиксы. Выбор того или иного способа всецело зависит от предпочтений программиста.
