Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






 

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

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

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

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

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

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

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

Например:

Sub Lab1 ()

´ программирование линейных алгоритмов

´ задание 2.2

´ выполнил студент гр. МТ-11

´ Иванов И.И.

Dim S As Integer ´ S – сумма положительных чисел

Dim i As Byte ´ i – переменная цикла

End Sub

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

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

Например,

y = 2 * Sqr(x+3) - (log(x^2) +2) _

/ (sin(x-1));

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

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

Например,

y= “В обрабатываемом массиве нет” & _

“ положительных чисел”;

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

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

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

4. Расположение нескольких операторов в одной строке.

Использование знака двоеточия (:) позволяет разместить несколько операторов (инструкций) на одной строке. Это всегда короткие операторы, как правило, операторы присваивания. Например, конструкции

x=x+a

y=x-b

эквивалентны такой

x=x+a: y=x-b

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

Любая информация воспринимается лучше, если она имеет иерархическую структуру (процедура, цикл, вложенный цикл, ветвление, вложенное ветвление, описательные инструкции и т.д.). В VBA такая структура создается с помощью отступов в коде в нужных местах. Это не только облегчит чтение кода, но и поможет увидеть его структуру.

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

2. ОРГАНИЗАЦИЯ ВВОДА – ВЫВОДА ДАННЫХ

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

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

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

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

 

2.1. ОКНО СООБЩЕНИЯ. Стандартная процедура MsgBox

 

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

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

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

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

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

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

 

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

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

сообщение –

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

атрибуты –

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

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

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

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

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

vbOKCancel + vbExclamation

заголовок -

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

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

 

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

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

Пример 2.1. Вывод простого информационного сообщения.

Процедура Pr_1:

Sub Pr2_1()

' Простое информационное сообщение

MsgBox " Привет!!! "

End Sub

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

Для ввода в строке заголовка окна сообщения личного заголовка (например, такого, как на рисунке 2), необходимо изменить процедуру MsgBox:

MsgBox “Привет!!! ”,, “Пример”

Усложним выводимое информационное сообщение. На рис.2.2 б) показан результат вывода строковой константы “ Привет!!! ” и значения строковой переменной Name. Для их вывода в качестве единого информационного сообщения использована операция конкатенации (сцепления). Данный вывод реализован с помощью следующей процедуры.

 

Sub Pr2_1_б()

' Простое информационное сообщение

' с выводом заголовка

Dim Name As String

Name = " Анна"

MsgBox " Привет!!! " & Name,, " Пример"

End Sub

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

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

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

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

На рис.2.2 в) приведены результаты работы процедуры Pr2_1_в().

Sub Pr2_1_в()

' Простое информационное сообщение с выводом заголовка

Dim Name As String

Name = " Анна"

MsgBox " Привет!!! " & Chr(13) & Name,, " Пример"

End Sub

Пример 2.2. Вывод информационного сообщения совместно с информационным значком в окне сообщения.

Процедура Pr2_2 осуществляет вывод диалогового окна, представленного на рис.2.3.

 

Sub Pr2_2()

' Вывод сообщения в сочетании с

' предупреждающим информационным значком

MsgBox " Процент выполнения плана выпуска продукции -" & _

vbCr & " незначительный", vbExclamation, _

" Пример"

End Sub

Для вывода информационного значка (Предупреждение) используется в качестве параметра атрибуты встроенная константа vbExclamation (см. табл.9).

 

 

Пример 2.3. Вывод диалогового окна с кнопками ОК (основная), Отмена и со значком (Предупреждающий запрос).

Данное окно (рис.2.4) можно вывести с помощью следующей процедуры

Sub Pr2_3()

' Вывод сообщения с двумя кнопками ОК и Отмена

'в сочетании с предупреждающим информационным значком.

' Кнопка ОК является основной

MsgBox " Процент выполнения плана выпуска продукции -" & _

Chr(13) & " незначительный", vbOKCancel + _

vbQuestion + vbDefaultButton1, " Пример"

End Sub

2.2. ОКНО ВВОДА. Стандартная функция InputBox()

 

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

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

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

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

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

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

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

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

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

сообщение –

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

заголовок -

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

умолчание –

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

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

Например, с помощью инструкции

x = InputBox(" Введите значение х", " Пример 3.5", " 5")

с помощью окна ввода (рис.2.5) осуществляется ввод некоторого значения с клавиатуры. Затем введенное значение преобразуется в соответствии с типом переменной x.

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

 

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

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

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

Например,

Ø x=Cells(5, 3).Value

или

x = Range(" C5").Value

Переменной x присваивается значение свойства Value ячейки С5.

Ø x = Cells(1+i, 1+j).Value

Переменной x присваивается значение ячейки, номер строки и столбца которой определяется значениями выражения 1+i и 1+j соответственно.

Ø Cells(8, 4).Value =x+2*y

В ячейке D8 выводится значение выражения x+2y.

Ø p = InputBox(" Введи номер строки")

q = InputBox(" Введи номер столбца")

Cells(p, q).Value = a + Range(" A1").Value

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

Пример 2.4. Вычислить значение функции . Ввод/вывод данных осуществить с/на рабочий лист.

Фрагмент рабочего листа с исходными данными представлен на рис.2.7 а). Расчеты получены с помощью процедуры Pr2_4() и выведены на тот же рабочий лист (рис.2.7 б)).

 

Sub Pr2_4 ()

Dim a As Byte, b As Byte, x As Integer, y As Single

a = Cells (2, 3)

b = Cells (3, 3)

x = Cells (4, 3)

y = (x + 3) ^ 2 + (2 * a - 3 * b) / (x ^ 2 - 2.8)

Cells(6, 1) = " Значение функции: "

Cells (7, 3) = y

End Sub


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

mylektsii.su - Мои Лекции - 2015-2024 год. (0.018 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал