Программа Visual Basic создается из стандартных стандартных блоков. Решение состоит из одного или нескольких проектов. Проект, в свою очередь, может содержать одну или несколько сборок. Каждая сборка компилируется из одного или нескольких исходных файлов. Исходный файл содержит определение и реализацию классов, структур, модулей и интерфейсов, которые в конечном итоге содержат весь код.
Дополнительные сведения об этих стандартных блоках программы Visual Basic см. в разделе Решения и проекты и сборки в .NET.
Элементы программирования File-Level
При запуске проекта или файла и открытии редактора кода вы увидите, что некоторый код уже на месте и в правильном порядке. Любой код, который вы пишете, должен следовать следующей последовательности:
- Операторы Option
- Операторы Imports
- Namespace операторы и элементы уровня пространства имен
Если ввести инструкции в другом порядке, могут возникнуть ошибки компиляции.
Программа также может содержать операторы условной компиляции. Их можно перемежать в исходном файле между операторами предыдущей последовательности.
Master Advanced Excel Techniques 4: Mastering Macros and VBA in Excel: Advanced Excel Training Guide
Операторы Option
Option инструкции устанавливают основные правила для последующего кода, помогая предотвратить синтаксические и логические ошибки. Оператор Option Explicit гарантирует, что все переменные объявляются и написаны правильно, что сокращает время отладки. Оператор Option Strict помогает свести к минимуму логические ошибки и потери данных, которые могут возникнуть при работе между переменными разных типов данных. Оператор Option Compare определяет способ сравнения строк друг с другом на основе их Binary значений или Text .
Инструкции imports
Вы можете включить оператор Imports (пространство имен и тип .NET) для импорта имен, определенных за пределами проекта. Оператор Imports позволяет коду ссылаться на классы и другие типы, определенные в импортированном пространстве имен, без необходимости их квалифицировать. Можно использовать любое количество Imports инструкций. Дополнительные сведения см. в разделах References and the Imports Statement.
Операторы пространства имен
Пространства имен помогают упорядочивать и классифицировать элементы программирования для упрощения группировки и доступа к ней. Оператор Namespace используется для классификации следующих операторов в определенном пространстве имен. Дополнительные сведения см. в разделе Пространства имен в Visual Basic.
Операторы условной компиляции
Операторы условной компиляции могут отображаться практически в любом месте исходного файла. Они приводят к включению или исключению частей кода во время компиляции в зависимости от определенных условий. Их также можно использовать для отладки приложения, так как условный код выполняется только в режиме отладки. Дополнительные сведения см. в разделе Условная компиляция.
Элементы программирования Namespace-Level
Классы, структуры и модули содержат весь код в исходном файле. Это элементы уровня пространства имен , которые могут отображаться в пространстве имен или на уровне исходного файла. Они содержат объявления всех остальных элементов программирования. Интерфейсы, которые определяют сигнатуры элементов, но не предоставляют реализацию, также отображаются на уровне модуля. Дополнительные сведения об элементах уровня модуля см. в следующих статьях:
VBA. Программирование алгоритмов линейной структуры
- Оператор Class
- Оператор Structure
- Оператор Module
- Оператор Interface
Элементы данных на уровне пространства имен являются перечислениями и делегатами.
Элементы программирования Module-Level
Процедуры, операторы, свойства и события — это единственные программные элементы, которые могут содержать исполняемый код (инструкции, выполняющие действия во время выполнения). Они являются элементами уровня модуля вашей программы. Дополнительные сведения об элементах уровня процедуры см. в следующих статьях:
- Оператор Function
- Оператор Sub
- Declare Statement
- Operator Statement
- Property Statement
- Оператор Event
Элементы данных на уровне модуля — это переменные, константы, перечисления и делегаты.
Элементы программирования Procedure-Level
Большая часть содержимого элементов уровня процедуры — это исполняемые инструкции, которые составляют код времени выполнения программы. Весь исполняемый код должен находиться в какой-то процедуре ( Function , , Operator Sub , Get , Set AddHandler , RemoveHandler , , ). RaiseEvent Дополнительные сведения см. в разделе Инструкции.
Элементы данных на уровне процедуры ограничены локальными переменными и константами.
Основная процедура
Процедура Main является первым кодом, который выполняется при загрузке приложения. Main служит отправной точкой и общим элементом управления для приложения. Существует четыре разновидности Main :
- Sub Main()
- Sub Main(ByVal cmdArgs() As String)
- Function Main() As Integer
- Function Main(ByVal cmdArgs() As String) As Integer
Наиболее распространенной разновидностью этой процедуры является Sub Main() . Дополнительные сведения см. в разделе Основная процедура в Visual Basic.
См. также раздел
- Процедура Main в Visual Basic
- Соглашения об именах Visual Basic
- Ограничения в Visual Basic
Источник: learn.microsoft.com
«VBA Структура программ на VBA, операторы описания, операторы присваивания»
Программы на VBA хранятся в проектах. Проект содержит модули различных типов, а модули включают различные процедуры.
Проект может содержать несколько модулей. Имеется три типа модулей:
стандартные модули — это модули, в которых можно описать доступные во всем проекте процедуры;
модули класса содержат описание объекта, который является членом класса. Процедуры, написанные в модуле класса, используются только в этом модуле. Среди модулей класса выделяют модули форм и отчетов, которые связаны с конкретной формой или отчетом. и Модули форм и отчетов часто содержит процедуры обработки событий, которые срабатывают в ответ на событие в форме или отчете. Процедуры обработки событий используются для управления поведением форм и отчетов и их реакцией на действия пользователя типа щелчка мыши на кнопке.
Модули содержат описания и процедуры — наборы описаний и инструкций, сгруппированных для выполнения. Существует три типа процедур:
процедура Sub — набор команд, с помощью которого можно решить определенную задачу. При ее запуске выполняются команды процедуры, а затем управление передается в приложение пакета MS Office или процедуру, которая вызвала данную процедуру.
процедура Function (функция) также представляет собой набор команд, который решает определенную задачу. Различие заключается в том, что такие процедуры обязательно возвращают значение, тип которого можно описать при создании функции.
процедура Property используется для ссылки на свойство объекта. Данный тип процедур применяется для установки или получения значения пользовательских свойств форм и модулей.
Для создания модуля в любом приложении MS Office необходимо выбрать команду меню СервисМакросРедактор Viual Basic. В окне «Проект» необходимо щелкнуть правой кнопкой мыши на любом элементе либо в окне редактора выбрать команду меню Вставка, а далее тип модуля. При выборе формы (Userform) для перехода к ее модулю используется команда ВидПрограмма или кнопка «Программа» в окне «Проект».
Самое начало модуля называется общей областью, в которой располагаются общие описания, например, типа данных, используемого по умолчанию (DefТип), инструкция Option Explicit, требующая явного описания всех используемых в модуле переменных, а также описания общих (глобальных) для всех модулей и для данного модуля переменных.
4.2 Операторы описания
Объявление переменной производится одним из операторов Dim, Static, Private, Public, за которым следует имя переменной и необязательная часть с ключевым словом As, после которого задается тип переменной, например Dim name [As type]. Оператор Public используется только вне модуля, в его общей части и делает описываемую переменную доступной из всех процедур всех модулей проекта. Оператор Private служит для объявления переменной уровня модуля, доступной только процедурам данного модуля. Можно использовать также оператор Dim, но применение Private предпочтительнее как противоположное Public.
Переменные могут быть объявлены внутри процедуры операторами Dim или Static. Такие переменные называют также локальными, поскольку доступны только в той процедуре, в которой они объявлены. Данное свойство (область видимости) позволяет использовать одинаковые имена переменных в разных процедурах, не опасаясь конфликтов или случайных изменений значений переменных. Время жизни локальных переменных, объявленных с помощью оператора Dim равно времени работы процедуры и по ее окончании значения таких переменных теряются.
Переменные, объявленные с помощью оператора Static сохраняют свои значения в течении всего времени выполнения приложения. При повторном входе в процедуру, где описана такая переменная, ее значение сохраняется.
Операторы Public и Private можно применять при описании констант и процедур, что позволяет указать их область видимости. Для процедур возможно также применение оператора Static, что позволяет сделать все переменные в процедуре статическими:
Static Function Total (num) as Integer
Это приводит к тому, что все локальные переменные в процедуре становятся статическими, независимо от того, как они определены; операторами Static, Dim, Private или неявным образом.
4.3 Oператоры присваивания
Инструкция Let Присваивает значение выражения переменной или свойству:
[Let] имяПеременной = выражение
Явное использование ключевого слова Let зависит от вкуса пользователя, обычно это слово опускают.
Значение выражения может быть присвоено переменной, только если оно имеет совместимый с этой переменной тип данных. Невозможно присвоить строковое выражение числовой переменной или числовое выражение строковой переменной. Такая попытка приведет к ошибке во время компиляции.
Переменным типа Variant могут присваиваться как строковые, так и числовые выражения. Однако обратное не всегда верно. Любое значение типа Variant, за исключением значения Null, допускает присвоение строковой переменной, но только значение типа Variant, которое может рассматриваться как число, может быть присвоено числовой переменной. Пользуйтесь функцией IsNumeric для определения возможности преобразования значения Variant в числовое значение.
1.10. Структура программы
Решение задач с помощью VBA требует создания проекта.
Проект – это совокупность нескольких элементов. Основными из них являются: приложение (в нашем случае это Excel), среда разработки VBA (редактор VBA) и совокупность модулей, в которых записывается программный код (совокупность программных единиц – процедур проекта).
Любая процедура представляет собой последовательность инструкций. Инструкция — это синтаксически полный компонент программы, представляющий собой операцию, описание или определение. Инструкция может содержать ключевые слова, операторы, переменные, константы и выражения.
В VBA различают три типа инструкций:
- Инструкции объявления. Они используются для объявления процедур, переменных, массивов и констант.
- Инструкции присваивания. Эти инструкции присваивают значение, результат выполнения функции или результат вычисления выражения переменной или константе. Инструкция присваивания всегда содержит символ «=».
- Выполняемые инструкции. Инструкции этого типа выполняют какие-либо действия. Например, выполнение разветвления, повторяющихся действий, метода и т.д.
1.11. Правила оформления кода
- В соответствии с правилами хорошего стиля программирования размещать инструкции описания в начале процедуры, т.е. структурно выделив в ней описательную и исполнительную части.
- Использовать комментарии.
- Делают программу легко читаемой, поясняя смысл кода и алгоритма. Комментарии могут располагаться в любом месте процедуры. Закомментированный текст в начале программы используется для указания действия, выполняемого ею, и краткой справке об авторе программы. Комментарии по тексту процедуры обычно используются для пояснения ключевых фрагментов кода.
- Временно отключают от выполнения закомментированные фрагменты программы, что бывает очень полезно при ее отладке.
- Перенос строк кода.
- Нельзя разбивать переносом строковые константы. Если строковая константа длинная, и ее все же необходимо разбить, следует использовать операцию конкатенации (сцепления).
- За признаком продолжения строки нельзя ставить комментарий.
- Допустимо не более семи продолжений одной и той же строки.
- Строка не может состоять более чем из 1024 символов.
- Расположение нескольких операторов в одной строке.
- Выделение логических уровней кода отступами.
Источник: studfile.net