Студопедия

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

Разделы сайта

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






  • Как продвинуть сайт на первые места?
    Вы создали или только планируете создать свой сайт, но не знаете, как продвигать? Продвижение сайта – это не просто процесс, а целый комплекс мероприятий, направленных на увеличение его посещаемости и повышение его позиций в поисковых системах.
    Ускорение продвижения
    Если вам трудно попасть на первые места в поиске самостоятельно, попробуйте технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Если ни один запрос у вас не продвинется в Топ10 за месяц, то в SeoHammer за бустер вернут деньги.
    Начать продвижение сайта
  • Правила оформления кода






     

    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






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.