Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Правила оформления кода




Структура программы

Решение задач с помощью VBA требует создания проекта.

Проект – это совокупность нескольких элементов. Основными из них являются: приложение (в нашем случае это Excel), среда разработки VBA (редактор VBA) и совокупность модулей, в которых записывается программный код (совокупность программных единиц – процедур проекта).

Любая процедура представляет собой последовательность инструкций. Инструкция - это синтаксически полный компонент программы, представляющий собой операцию, описание или определение. Инструкция может содержать ключевые слова, операторы, переменные, константы и выражения.

В VBA различают три типа инструкций:

1. Инструкции объявления. Они используются для объявления процедур, переменных, массивов и констант.

2. Инструкции присваивания. Эти инструкции присваивают значение, результат выполнения функции или результат вычисления выражения переменной или константе. Инструкция присваивания всегда содержит символ «=».

3. Выполняемые инструкции. Инструкции этого типа выполняют какие-либо действия. Например, выполнение разветвления, повторяющихся действий, метода и т.д.

Основной единицей программного кода проекта VBA является процедура. Существует три вида процедур. Самый распространенный тип - процедура Sub. Набор текста процедуры начинается с ее объявления.

Упрощенный синтаксис объявления процедуры Sub имеет следующий вид:

Sub <ИмяПроцедуры>([<Список параметров>])

<Тело процедуры>

End Sub

Элементы синтаксиса:

Sub

Обязательный. Ключевое слово заголовка процедуры.

ИмяПроцедуры

Обязательный. Идентификатор процедуры (имя процедуры).

Список параметров –

Необязательный. Используется для передачи данных в процедуру или из нее.

Тело процедуры –

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

End Sub –

Обязательный. Ключевое слово конца процедуры.

Желательно придерживаться следующих рекомендаций:

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

2. Использовать комментарии.

Комментарии, т.е. пояснения к фрагменту текста процедуры, не являются программным кодом и поэтому компилятором игнорируются. Комментарии выполняют две важные функции:

- Делают программу легко читаемой, поясняя смысл кода и алгоритма. Комментарии могут располагаться в любом месте процедуры. Закомментированный текст в начале программы используется для указания действия, выполняемого ею, и краткой справке об авторе программы. Комментарии по тексту процедуры обычно используются для пояснения ключевых фрагментов кода.

- Временно отключают от выполнения закомментированные фрагменты программы, что бывает очень полезно при ее отладке.

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

3. Перенос строк кода.

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

При переносе строк необходимо помнить:

- Нельзя разбивать переносом строковые константы. Если строковая константа длинная, и ее все же необходимо разбить, следует использовать операцию конкатенации (сцепления).

Например,

- За признаком продолжения строки нельзя ставить комментарий.

- Допустимо не более семи продолжений одной и той же строки.

- Строка не может состоять более чем из 1024 символов.

4. Выделение логических уровней кода отступами.

Это не только облегчит чтение кода, но и поможет увидеть его структуру. Правила отступа просты. Основной текст программы набирайте с отступом, например, в три пробела. Каждый вложенный блок (например, инструкции, расположенные внутри оператора цикла) сдвиньте еще на три пробела и т.д.

9.12. Организация ввода – вывода данных

Для обмена информацией с пользователем в Windows используются специальные формы, которые называются диалоговыми окнами.

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

Окно ввода (InputBox) обеспечивает ввод информации, а окно сообщений (MsgBox) выводит сообщения для пользователя.

Кроме того, в программах VBA, написанных для приложения MS Excel, есть возможность ввод и вывод данных осуществить непосредственно из ячеек (в ячейки) рабочего листа.

9.13. Окно сообщения MsgBox

Вывод – это процесс переноса информации из оперативной памяти компьютера на внешний носитель (экран, принтер, файл).

Практически любое информационное сообщение или предупреждение пользователь может вывести в специальном диалоговом окне.

Программная поддержка окна сообщения осуществляется встроенной процедурой MsgBox, которая

- выводит на экран диалоговое окно, содержащее сообщение и одну или более кнопок. Кнопка OK выводится всегда. Остальные кнопки – по усмотрению разработчика.

- устанавливает режим ожидания нажатия кнопки пользователем.

Сокращенный синтаксис процедуры MsgBox:

MsgBox сообщение [, атрибуты] [, заголовок]

Элементы синтаксиса:

сообщение –

Обязательный. Строковое выражение, отображаемое как сообщение в диалоговом окне. Максимальная длина строки 1024 символа.

атрибуты –

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

Ø число и тип отображаемых кнопок;

Ø тип используемого информационного значка;

Ø основную кнопку.

Значение по умолчанию этого параметра равняется 0. Значения констант, определяющих число, тип кнопок и используемых значков, (табл.8. – 9). Для вывода в окне сообщения нескольких кнопок и информационных значков значения констант указываются в виде элементов операции конкатенации. Например:

vbOKCancel + vbExclamation

заголовок -

Необязательный. Строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот параметр опущен, то в строку заголовка помещается имя приложения.

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

 

Таблица 8
Значения параметра Buttons процедуры и функции MsgBox, определяющие отображаемые кнопки в окне сообщения
Константа Значение Отображаемые кнопки
vbOKOnly   OK
vbOKCancel   OK, Отмена
vbAbortReplyIgnore   Стоп, Повтор, Пропустить
vbYesNoCancel   Да, Нет, Отмена
vbYesNo   Да, Нет
vbReplyCancel   Повтор, Отмена
Таблица 9
Значения параметра Buttons процедуры и функции MsgBox, определяющие отображаемые информационные значки в окне сообщения
Константа Значение Значок сообщения
vbCritical  
vbQuestion  
vbExclamation  
vbInformation  
       

Параметры атрибуты и заголовок могут отсутствовать. Однако если в процедуре используется параметр заголовок, то перед ним необходимо указать два разделительных символа “,” (запятая).

Результатом работы данной процедуры является информационное сообщение, выведенное в виде диалогового окна. Поскольку в процедуре MsgBox отсутствуют параметры атрибуты и заголовок, то в диалоговом окне выведена только одна обязательная кнопка OK, которая используется для закрытия окна, и в заголовке окна выведено имя приложения – Microsoft Excel.

Для вывода сообщения в нескольких строчках используется стандартная функция Сhr(). Онапозволяет получать символы, генерируемые при нажатии различных клавиш. Например, Chr(9) – соответствует нажатию клавиши Tab, Chr(13) – клавиши Enter.

Поскольку символы, используемые для начала новой строки являются очень важными при форматировании сообщений и других строковых данных, которыми манипулирует VBA-процедуры, VBA имеет несколько предопределенных констант для этих символов, чтобы не было необходимости использовать функцию Chr():

Ø vbCr – символ возврата каретки, эквивалент выражения Chr(13);

Ø vbTab – символ табуляции, эквивалент выражению Сhr(9). Символы табуляции включают в строки для выравнивания данных в столбцах.

9.14. Окно ввода InputBox()

Ввод – это процесс переноса информации с внешнего носителя (клавиатура, файл) в оперативную память компьютера.

Программная поддержка окна ввода обеспечивается функцией InputBox(), которая

Ø Выводит на экран диалоговое окно, содержащее сообщение, поле ввода и две кнопки: ОК и Cancel;

Ø Устанавливает режим ожидания ввода текста пользователем и нажатия кнопки;

Ø Возвращает значение типа String по нажатию кнопки ОК, содержащее текст, введенный в поле ввода;

Ø Возвращает пустую строку (значение Empty) при нажатии кнопки Cancel.

Сокращенный синтаксис:

InputBox (сообщение [, заголовок] [, умолчание])

Элементы синтаксиса:

сообщение –

Обязательный. Строковое выражение, отображаемое как сообщение в диалоговом окне. Может содержать несколько строк. Максимальная длина строки 1024 символа.

заголовок -

Необязательный. Строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот параметр опущен, то в строку заголовка помещается имя приложения.

умолчание –

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

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

При вводе вещественных чисел используется знак десятичная запятая (“,”).

9.15. Ввод/вывод данных с/на рабочий лист Excel

Для организации ввода/вывода данных непосредственно с/на рабочий лист приложения MS Excelиспользуется объект Range (“ Диапазон ячеек”) или свойство Cells (номер строки, номер столбца) объекта Worksheet (Рабочий лист). С их помощью, используя свойство Value можно работать с любой ячейкой рабочего листа Excel.

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

В ячейку рабочего листа, расположенную в p строке и q столбце выводится значение выражения a + Range("A1").Value. Номера строки и столбца вводятся с клавиатуры.

9.16. Инструкция разветвления.Условный оператор If…Then

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

В VBA существует несколько разновидностей условного оператора If:

1. Краткая форма условного оператора If <условие> Then

2. Полная форма условного оператора If с одним условием If <условие> Then … Else … EndIf

3. Проверка множественных условий If <условие> Then … ElseIf <условие> EndIf

Используется для программирования краткой формы ветвления, т.е. позволяет выполнять один или несколько операторов, если логическое выражение в условии принимает значение True - Истина.

Можно использовать однострочный или блочный синтаксис.

Однострочный синтаксис:

If <условие> Then <оператор>

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

1. расположить их в одну строку, разделив знаком двоеточие «:»;

2. использовать блочный синтаксис оператора If … Then.

Использование второго варианта предпочтительнее, т.к. он является более наглядным.

Блочный синтаксис:

If <условие> Then

<Блок операторов>

End If

Кроме условного оператора If…Then возможно использование условный оператора If…Then…Else, который используется для программирования полной формы ветвления. Если логическое выражение принимает значение True – Истина,выполняется один блок операторов, в противном случае (значение логического выражения False – Ложь) – второй.Можно использовать однострочный или блочный синтаксис.

Однострочный синтаксис:

If <условие> Then <оператор> Else <оператор>

Блочный синтаксис:

If <условие> Then

<Блок операторов>

Else

<Блок операторов>

End If




Поделиться с друзьями:


Дата добавления: 2014-10-17; Просмотров: 401; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.045 сек.