Учебные материалы по математике | Работа в среде vba — примеры | Matematiku5
Вузы по математике Готовые работы по математике Как писать работы по математике Примеры решения задач по математике Решить задачу по математике online

Работа в среде vba — примеры


Do … Loop Until.

Ниже приведен синтаксис этих операторов цикла:

‘ Цикл с предусловием   Do While … Loop 

Do While УСЛОВИЕ 

  БЛОК_ОПЕРАТОРОВ

  [Exit Do]

  БЛОК_ОПЕРАТОРОВ

Loop

Примечание. Не рекомендуется принудительно изменять значения параметра цикла, его начального и конечного значения в теле цикла For…Next.

‘ Цикл с предусловием   Do Until … Loop 

Do Until УСЛОВИЕ 

  БЛОК_ОПЕРАТОРОВ

  [Exit Do]

  БЛОК_ОПЕРАТОРОВ

Loop

‘ Цикл с постусловием  Do … Loop While

Do

БЛОК_ОПЕРАТОРОВ

  [Exit Do]

БЛОК_ОПЕРАТОРОВ

Loop While УСЛОВИЕ 

‘ Цикл с постусловием  Do … Loop Until

Do

БЛОК_ОПЕРАТОРОВ

  [Exit For]

БЛОК_ОПЕРАТОРОВ

Loop Until УСЛОВИЕ 

Оператор Do While…Loop обеспечивает многократное повторение блока операторов до тех пор, пока УСЛОВИЕ соблюдается, а оператор Do Until…Loop пока УСЛОВИЕ не соблюдается. Операторы Do…Loop While, Do…Loop Until  отличаются от перечисленных выше операторов тем, что сначала блок операторов выполняется по крайней мере один раз, а потом проверяется УСЛОВИЕ.

Для избежания зацикливания в теле цикла должен быть хотя бы один оператор, который изменяет значения переменных, стоящих в УСЛОВИИ.

Оператор Exit Do обеспечивает досрочный выход из оператора цикла.

Пример 1. Составить фрагмент программы для алгоритма на рис. 3.6.

http://dpivi.ru/uploads/posts/2011-02/1297969284_13.jpg

Пример 2. Составить фрагмент программы для алгоритма на рис. 3.7.

http://dpivi.ru/uploads/posts/2011-02/1297969319_14.jpg

Пример 3. Составить фрагмент программы, соответствующей алгоритму

http://dpivi.ru/uploads/posts/2011-02/1297969418_15.jpg

Структура программы. Модули, процедуры и функции http://dpivi.ru/templates/dpivi/img/short_top.png

Модуль представляет собой текстовый ASCII-файл с программным кодом, содержащим подпрограммы, переменные и константы. Проект может состоять из множества программных модулей. Для их создания необходимо выполнить команду Вставка http://dpivi.ru/uploads/posts/2011-02/1297968448_19.jpgМодуль. Рабочее окно модуля представлено на рис. 4.1.

http://dpivi.ru/uploads/posts/2011-02/1297968124_16.jpg

Основу программ в VBA составляют процедуры и функции.

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

[ДОСТУП] Sub ИМЯ_ПРОЦЕДУРЫ ([СПИСОК_ПАРАМЕТРОВ])

  ТЕЛО_ ПРОЦЕДУРЫ

End Sub

Ключевое слово ДОСТУП является необязательным и определяет область видимости процедуры. Public указывает, что процедура доступна для всех других процедур во всех модулях (глобальная).  Private указывает, что процедура  доступна для других процедур только того модуля, в котором она описана (локальная). СПИСОК_ПАРАМЕТРОВ также является необязательным элементом и позволяет передавать процедуре различные исходные данные при вызове, которые называются формальными параметрами. При этом ключевое слово Dim не указывается. ТЕЛО_ПРОЦЕДУРЫ состоит из описательной части и блока операторов, выполняющихся один за другим. Если необходимо прекратить выполнение процедуры в некотором конкретном месте, это можно сделать с помощью оператора Exit Sub. ИМЯ_ПРОЦЕДУРЫ – это любой идентификатор, определенный пользователем. Идентификатор – это последовательность  букв, цифр и символа подчеркивания, начинающаяся с буквы (пробелы внутри идентификатора недопустимы). Имя процедуры всегда определяется на уровне модуля. Для использования процедуры в тексте программы (т. е. для её вызова), необходимо указать имя процедуры и список фактических параметров, которые должны по типу и порядку следования совпадать с формальными параметрами.

Функция Function во многом похожа на процедуру, но в отличие от неё при вызове всегда возвращает значение. Функция получает параметры, называемые аргументами, и выполняет с ними некоторые действия, результат которых возвращается функцией. Структура функции следующая:

[ДОСТУП] Function ИМЯ_ФУНКЦИИ(СПИСОК_АРГУМЕНТОВ) As ТИП

   ТЕЛО_ ФУНКЦИИ

  ИМЯ_ФУНКЦИИ = ВЫРАЖЕНИЕ

End Function

ТИП определяет тип данных возвращаемого результата. В теле функции обязательно должен присутствовать, по крайней мере, один оператор, присваивающий имени функции значение вычисляемого выражения. Досрочное завершение функции возможно с помощью оператора Exit Function. В программе вызов функции осуществляется с помощью оператора присваивания, в правой части которого указывается имя функции с перечнем фактических параметров, как и любой другой встроенной функции, например, Sqr, Cos или Chr.

Процедуры и функции, не описанные явно с помощью ключевых слов Public или Private, по умолчанию являются общими.

Для быстрого добавления в модуль подпрограмм удобно воспользоваться командой Вставка http://dpivi.ru/uploads/posts/2011-02/1297968448_19.jpgПроцедура. В появившемся окне (рис. 4.2) нужно выбрать необходимые опции.

В MS Excel с функциями, созданными пользователем, можно работать с помощью Мастера функций точно так же, как и со встроенными функциями рабочего листа.

Пример. В MS Excel создать функцию пользователя, математически определенную следующим образом:

y = sin(x) ∙ e-5x

Создадим модуль, как указано выше (рис 4.2), и введем в него текст следующей программы:

http://dpivi.ru/uploads/posts/2011-02/1297968133_17.jpg

Public Function Y(x As Single) As Single

  Y =  Sin(x) *  Exp(- 5 * x )

End Function 

Для использования созданной функции на рабочем листе MS Excel введем в ячейку А2 число 0.1. В ячейке В2 вычислим значение функции Y при x = 0.1. Для этого в ячейку В2 достаточно ввести формулу  =Y(A2). Это можно сделать и с помощью Мастера функций, который будет содержать функцию Y наряду с другими встроенными функциями  MS Excel (рис 4.3).

http://dpivi.ru/uploads/posts/2011-02/1297968312_18.jpg

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

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

Далее располагают непосредственно текст функций и процедур, составляющих саму программу.

Разделителем операторов в одной строке при записи программы является символ “:”.

Для переноса оператора на другую строку используется символ “_” (знак подчеркивания).

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

Пример организации модуля: 

Option Base 1

Option Explicit

‘ PI – глобальная константа

Const  PI  As Double = 3.14159

x глобальная переменная

Dim x As Double 

 ‘ Функция Disc вычисляет площадь круга

Public Function Disc(R As Double) As Double

  x = 2

  Disc = PI * R ^ 2

End Function 

Функция Rec вычисляет площадь треугольника

Public Function Rec(a As Double, b As Double, c  As Double ) As Double

‘ p – локальная переменная

 Dim p As Double 

  p = ( a + b + c) / 2

  Rec = Sqr ( p * ( p – a )* ( p – b ) * ( p – c))

End Function 

Наташа

Автор

Наташа — контент-маркетолог и блогер, но все это не мешает ей оставаться адекватным человеком. Верит во все цвета радуги и не верит в теорию всемирного заговора. Увлекается «нефрохиромантией» и тайно мечтает воссоздать дома Александрийскую библиотеку.

Распродажа дипломных

 Скидка 30% по промокоду Diplom2020