Основные сведения об интегрированной среде разработки приложений

Изучение возможностей интегрированной среды разработки VBA-приложений (EXCEL, WORD)

Цель лабораторной работы

Познакомиться с особенностями работы в интегрированной среде разработки приложений VBA. Освоить инструментарий редактора VBA.

Основные сведения об интегрированной среде разработки приложений

VBA - версия Visual Basic для приложений, которая имеет собственную специальную интегрированную среду разработки (IDE). VBA IDE - это окно, содержащее меню, другие окна и элементы, которые применяются при создании проектов VBA. Все приложения, поддерживающие VBA (EXCEL, WORD и др.), работают с одним IDE.

Проектом в Office называется набор программных модулей, связанных с основным документом приложения. С каждым документом связан свой проект. В проект входят:

· модуль с процедурами обработки событий других объектов приложения,

· стандартные модули с пользовательскими процедурами и макросами,

· модули классов,

· модули, связанные с диалоговыми окнами,

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

При создании основного объекта EXCEL - рабочей книги - возникает проект VBAProject(<имя книги>), содержащей по умолчанию модули для четырех объектов Excel: самой рабочей книги и трех рабочих листов.

К инструментам редактора, облегчающими разработку и управление приложениями относятся:

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

· окно свойств - используется для просмотра и задания свойств объектов проекта. Окно предназначено для установки свойств и просмотра значений всех компонентов проекта, создаваемых форм и объектов основного приложения. В окне свойств отображаются только свойства текущего объекта. Для некоторых свойств имеется ограниченный набор значений. Если при выборе свойства у правого края столбца значений отображается кнопка со стрелкой, то можно задать другую величину, выбрав из раскрывающегося списка требуемый элемент.

· окно модуля - используется при написании любой программы VBA, будь это код макроса или подпрограмма, которая входит в библиотеку служебных процедур разрабатываемого проекта. Под строкой заголовка окна расположены два списка. В первом списке выводятся все объекты модуля, а во втором - список процедур, связанных с выбранным объектом. Обычно модуль включает несколько функций или подпрограмм. Количеством одновременно отображаемых в окне модуля процедур можно управлять. Можно вывести либо все процедуры с отделением текста одной от текста другой горизонтальной линией, либо отобразить только одну процедуру модуля, нажав расположенную в нижнем левом углу кнопку "Представление полного модуля" или кнопку "Представление процедуры" соответственно.

Установка свойств проекта

Для установки свойств используется диалоговое окно VBAProject - свойства проекта, которое выводится по команде Tools\Normal Properties,вызывающее диалоговое окноNormal-Project Properties.На вкладке "Общие" (General) задается имя проекта и его описание. Там же устанавливается файл справки для проекта, идентификатор, указывающий на требуемый раздел справки, а также параметры, необходимые для компиляции проекта. Параметры вкладки "Защита" (Protection) устанавливают способ доступа к проекту из основного приложения.

Импорт и экспорт файлов

Редактор VBA обеспечивает возможность импорта и экспорта компонентов приложения. Это позволяет использовать имеющиеся данные в других приложениях и проектах Visual Basic.

Если имеется компонент объекта VBA, который необходимо включить в текущий проект, то требуется сначала экспортировать компонент из исходного проекта, а затем импортировать его в текущий проект. Кроме того, поскольку компоненты приложения Visual Basic всегда хранятся в отдельных файлах, можно с легкостью загрузить компонент из проекта VB. Для компонентов Visual Basic и VBA используются следующие стандартные расширения: FRM - форма, CLS - модуль класса, BAS - модуль программы.

Параметры редактора VBA

Установка параметров работы редактора VBA производится в диалоговом окне "Параметры" (Options) (Сервис\Параметры или Tools\Options).

Вкладка "Редактор" (Editor) диалогового окна "Параметры" включает следующие параметры:

Проверка синтаксиса (Auto Syntax Check). Определяет, должен ли Visual Basic автоматически проверять правильность синтаксиса после ввода строки программы.

Явное описание переменных (Require Variable Declaration). Определяет необходимость явного описания переменных в модулях.

Список компонентов (Auto List Members). Автоматически отображает список данных, логически завершающих инструкцию, расположенную в месте вставки.

Краткие сведения (Auto Quick Info). Отображает сведения о процедурах (функциях, подпрограммах, свойствах, методах) и их параметрах после ввода имени процедуры.

Подсказки значений данных (Auto Data Tips). Отображает значение переменной, на которой установлен курсор. Эта возможность доступна только в режиме прерывания.

Автоотступ (Auto Indent). Позволяет задать положение табуляции для первой строки - следующие строки будут начинаться с той же позиции.

Интервал табуляции (Tab Width). Устанавливает интервал табуляции в пределах от 1 до 32 пробелов.

Перетаскивание текста (Drag-And-Drop Text Edeting). Позволяет использовать мышь для перетаскивания фрагментов программ в окне модуля.

Просмотр всего модуля (Default to Full Module View). Для вновь открываемых модулей устанавливает режим просмотра всех процедур.

Разделитель процедур (Procedure Separator). Позволяетскрыть и отобразить разделяющую полосу, появляющуюся в конце каждой процедуры в окне модуля.

Каждый элемент кода можно вывести своим цветом, что позволяет быстро найти нужные фрагменты программ. Например, комментарии могут быть красными, описания - синими, а выделенный текст синим на розовом фоне. Цвета задаются во вкладке Формат (Editor Format)диалогового окна "Параметры".

Параметры вкладки "Общие" (General) диалогового окна "Параметры" задают параметры настройки, обработки ошибок и компиляции текущего проекта.

Показать сетку (Show Grid). Определяет, показывать ли сетку в режиме конструктора. Сетка помогает выравнивать элементы управления и изменять их размеры.

Размеры сетки (Grid Units). Отображает используемые для формы единицы сетки. Кроме того, можно задать интервал между точками сетки как по вертикали, так и по горизонтали.

Привязка элементов к сетке (Align Controls to Grid). Автоматически располагает внешние границы элементов управления на линиях сетки.

Всплывающие подсказки (Show ToolTips). Отображает подсказку по кнопкам панели инструментов.

Скрытие окон при сбое (Collapse Proj. Hides Windows). Определяет, должно ли быть автоматически закрыто окно проекта, формы, объекта или модуля при сворачивании проекта в окне проекта.

Уведомить о потере состояния (Notify Before State Loss). Флажок определяет, должно ли отображаться сообщение, уведомляющее об изменении режима.

Перехват ошибок (Error Trapping). Останов. Определяет способ обработки ошибок при выполнении программы.

Компиляция (Compile). Флажок "Компиляция по запросу" (Compile On Demand) определяет, должен ли проект перед запуском быть скомпилирован полностью, либо по мере необходимости, что позволяет быстрее запустить приложение. Флажок "В фоновом режиме" (Background Compile) определяет, следует ли использовать времена простоя при работе приложения для завершения компиляции проекта в фоновом режиме, что позволяет увеличить скорость выполнения. Эта возможность недоступна, если сброшен флажок "Компиляция по запросу".

Параметры вкладки "Закрепление" (Docking) диалогового окна "Параметры" определяют, какие окна в редакторе VBA можно закрепить.

Функция MsgBox

MsgBox(сообщение[, кнопки][, заголовок][, файл справки, контекст])

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

Функция InputBox

InputBox(сообщение[, заголовок][, умолчание][, Xпоз][, Yпоз][,файл справки, контекст])

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

Условный оператор IF

Для проверки одного условия и выполнения оператора или блока операторов используется оператор IF…THEN. Этот оператор можно использовать с разным синтаксисом: однострочным (линейным) и многострочным (блочным).

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

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

б) блочный:

If <условие> Then

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

End If

Для проверки одного условия и выбора одного из двух блоков операторов используется оператор вида If…Then… Else.

If <условие> Then

<блок операторов1>

Else

<блок операторов2>

End If

Для проверки более одного условия и выполнения одного из нескольких блоков операторов используется оператор вида:

If… Then…ElseIf

If <условие 1> Then

<блок операторов 1>

ElseIf <условие 2> Then

<блок операторов 2>

…………….

ElseIf<условие n> Then

<блок операторов n>

Else

<блок операторов Else>

End If

Оператор выбора SELECT CASE

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

Формат записи оператора:

Select Caseпроверяемое выражение

Caseсписок выражений 1

операторы 1

Caseсписок выражений 2

операторы 2

Caseсписок выражений 3

операторы 3

……………………………….

Case Else

операторы группы Else

End Select

Проверяемое выражение вычисляется в начале работы оператора Select Case. Это выражение может возвращать значение любого типа (логическое, числовое, строковое).

Список выражений – одно или несколько выражений, разделенных стандартным символом – разделителем(;).

При выполнении оператора проверяется, соответствует ли хотя бы один из элементов этого списка проверяемому выражению. Эти элементы списка выражений могут иметь одну из следующих форм:

- выражение

- выражение 1 To выражение 2

- Is логический оператор (оператор сравнения) выражение

Например, Is >= 10

Оператор цикла For…Nextимеет две разновидности:

a) For счетчик = начало To конец [Step приращение]

операторы

Next [счетчик]

б) For Each <элемент> In <группа>

операторы

Next [элемент]

Оператор цикла WHILE…WEND

Используется для организации циклов с предусловием и имеет следующий формат:

While <условие продолжения цикла>

операторы тела цикла

Wend

Оператор цикла DO…LOOP

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

Этот оператор для организации цикла с предусловием может использоваться в двух модификациях:

а) Do While <условие продолжения цикла>

операторы тела цикла

Loop

б)Do Until <условие прекращения цикла>

операторы тела цикла

Loop

Для организации цикла с постусловием этот оператор также может быть использован в двух модификациях:

в) Do

операторы тела цикла

Loop While <условие продолжения цикла>

г)Do

операторы тела цикла

Loop Until <условие прекращения цикла>

Оператор перехода GoTo

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

Формат оператора:

GoToстрока

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

Оператор With для операций с одним объектом.

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

Формат записи оператора:

With объект

[операторы]

End With

Выполнение лабораторной работы

1. Cоздать проект в редакторе VBA. Для этого запустить редактор VBA: выбрать группу Макросы ленты ВИД или нажать комбинацию клавиш <Alt>< F8>. В диалоговом окне Макрос введите имя проекта – Проект и нажмите Создать, при этом откроется окно проекта.

2. Скрыть окно проекта. Нажать кнопку "Закрыть" окна проекта или щелкнуть правой кнопкой мыши по окну проекта, а затем выбрать из контекстного меню команду Hide (Скрыть).

3. Закрепить окно проекта. Для этого щелкнуть правой кнопкой мыши по окну проекта и выбрать из контекстного меню команду Dockable (Закрепить).

4. Переместить закрепленное окно проекта. Для этого перетащить окно, щелкнув по строке заголовка.

5. Проделать все перечисленные в пунктах 2-4 операции с окном свойств (Properties Window).

6. Вывести свойства объекта. Для этого необходимо выбрать объект из списка, расположенного вверху окна свойств, или выбрать объект в окне проекта и, если окно свойств скрыто, вывести его, нажав клавишу <F4>.

7. Изменить значение свойства. Для этого необходимо выбрать требуемое свойство в левом столбце, а затем задать нужную величину в правом столбце. Например, из списка, расположенного вверху окна свойств, выберите объект Лист1 (Лист1), в левом столбце окна свойств выберите свойство Name и в правом столбце задайте новое значение этого свойства Бюджет.

8. Добавить модуль в проект. Для этого:

· в окне проекта необходимо выбрать проект, в который требуется добавить модуль;

· выбрать в меню редактора VBA команду Insert\Module (Вставка\Модуль),после чего выведется пустое окно модуля;

· в окне свойств задать имя модуля (например, Обработка)

9. Отобразить окно модуля. Окно модуля отображается только тогда, когда с выбранным объектом связан код. Для отображения окна модуля можно выполнить одно из указанных действий:

· дважды щелкните в окне проекта по имени требуемого объекта приложения, который может содержать код (по названию модуля);

· дважды щелкните по форме или любому элементу управления в форме;

· выделите требуемый объект проекта, а затем выберите в окне редактора VBA команду View\Code (Вид\Программа).

10. Добавить процедуру в проект. Для этого:

· открыть окно модуля, в которое требуется добавить процедуру;

· выбрать команду Insert\Procedure (Вставка\Процедура);

· ввести имя процедуры в поле Имя (например, pr);

· выбрать переключатель. Задающий тип добавляемой процедуры: подпрограмма (Sub), функция (Function) или свойство (Property);

· задать личную или общую область определения процедуры, выбрав переключатель Public (Общая) или Private (Личная) соответственно;

· в случае если все локальные переменные являются статическими, установить флажок "Все локальные переменные считать статическими" (All Local variables as Statics);

· нажать кнопку "ОК". В окне модуля выведется пустая процедура с заданным именем.

11. Введите текст процедуры, вычисляющей сумму значений элементов одномерного массива:

Sub pr()

Dim b(10) As Integer

Dim s As Integer

s = 0

For i = 1 To 10

b(i) = InputBox("Введите число")

s = s + Val(b(i))

Next

MsgBox s

End Sub

Написание кода включает в себя описание переменных и объектов, использование процедур. Если VBA определяет, что описывается переменная или объект, то отображается специальное окно, в котором можно выбрать допустимый объект или тип. Например, после ввода: Dim s As редактор отображает список всех известных объектов и типов данных. После вывода списка нужно выбрать требуемый тип (Integer) и нажать клавишу <Enter>. VBA подставляет выделенный элемент в выражение Dim. Аналогичным образом введите еще две следующие процедуры:

Sub pr1()

Dim a As Single

Dim k As String

Dim y As Single

a = InputBox("Введите число")

x = Val(a)

If Val(a) <> 0 Then

y = 150 / x

k = MsgBox(y)

Else

MsgBox ("Деление на ноль")

End If

End Sub

Sub pr2()

Dim a(10) As Single, s As Single, b As Single, n As Boolean

For i = 1 To 10

a(i) = Val(InputBox("Введите число"))

Next

Do

n = False

For i = 1 To 9

If a(i) > a(i + 1) Then

b = a(i): a(i) = a(i + 1): a(i + 1) = b: n = True

End If

Next

Loop While n = True

s = a(1) + a(10)

MsgBox s

End Sub

12. Осуществить поиск процедур в окне модуля. Для этого:

· Чтобы быстро найти процедуру, которая находится в текущем модуле, необходимо выбрать в списке, расположенном в верхнем левом углу окна модуля, элемент (Общая область), а затем выделить название требуемой процедуры в списке, находящемся в правом верхнем углу.

· Чтобы быстро найти процедуру обработки события или метод текущего объекта, необходимо выбрать имя объекта в списке, расположенном в левом верхнем углу окна модуля, а затем выделить название события или метода в списке, находящемся в верхнем правом углу.

· Чтобы быстро найти описание процедуры, нужно щелкнуть правой кнопкой мыши по имени требуемой процедуры в любом месте кода и выбрать команду Object Browser (Описание).

· Чтобы возвратиться в позицию последней правки, нужно щелкнуть правой кнопкой мыши по окну модуля и выбрать из контекстного меню команду Last Position (Вернуться к последней позиции).

13. Задать цвет вывода для отдельных частей программы, для этого:

· Раскрыть вкладку Editor Format (Формат) диалогового окна Options (Параметры).

· Задать тип текста в списке Code Colors (Цветовые коды).

· Выбрать цвет текста и фона в списках Foreground (Текст) и Background (Фон) соответственно. Если требуется использовать индикатор полей, например, для точки останова, выберите индикатор в списке Indicator (Индикатор). Задать шрифт текста и его размер в списках Font (Шрифт) и Size (Размер) соответственно.

· Для сохранения заданного типа текста нажать "ОК".

14. Экспортировать файл, для этого:

· Выбрать экспортируемый компонент в окне проекта (например, Модуль1).

· Выбрать команду File\Export File (Файл/Экспорт файла),в диалоговом окне Export File раскройте нужную папку, введите имя файла и нажмите "ОК".

15. Импортировать файл, для этого:

· Активизировать другое приложение MS Office (например, WORD).

· Выбрать в окне редактора VBA команду File\Import File (Файл/Импорт файла),в диалоговом окне Import File найдите требуемый файл, выделите его, а затем нажмите кнопку "ОК".

16. Выполнить VBA-процедуры из импортированного модуля.

ЛАБОРАТОРНАЯ РАБОТА №2.

ЛАБОРАТОРНАЯ РАБОТА №3.

Удаление элементов списка

для этого используется метод RemoveItem объекта ListBox:

ListBox.RemoveItem (индекс_пункта)

Пример программы полной очистки списка:

Public Sub PopulateEmptyList()

For i = 0 To (ListBox1.ListCount-1)

ListBox1.RemoveItem i

Next

End Sub

Элемент управления ComboBox (Поле со списком)позволяет выбрать элемент из списка, либо ввести данные вручную. Текущее значение в поле со списком отображается в поле, а список возможных значений выводится при нажатии кнопки со стрелкой. Отличие объекта ComboBoxот объекта ListBox заключается в том, что в поле со списком можно явно выделить требуемое значение.

Типы полей со списком

В VBA имеется два типа элементов управления ComboBox. С помощью объектов первого типа можно ввести в поле данные, которые потом можно использовать как:

· Критерий выбора элементов в списке. При вводе символов, совпадающих с существующим пунктом списка, осуществляется перемещение на этот пункт. При этом используются свойства MatchEntry и MatchRecquired.

· Новое значение. В программе необходимо специально предусмотреть случай, когда введенного значения не имеется в списке.

С помощью объектов второго типа можно ввести в поле выбранный в списке элемент. В этом случае необходимо открыть список, нажав кнопку со стрелкой, а затем выбрать требуемый пункт списка. Элемент списка появляется в поле объекта ComboBox.

Тип объекта ComboBox можно указать с помощью свойства Style, допустимые значения которого приведены в таблице:

Тип Значение Константа
Ввод данных FmStyleDropDownCombo
Выбор значения из списка FmStyleDropDownList

Заполнение поля со списком

Для заполнения элемента управления ComboBox используется метод AddItem. Для данного метода требуется задать параметр, который определяет требуемый пункт:

ComboBox.AddItem строка_элемента

Пример программы добавления в список новых элементов:

Public Sub PopulateList()

ComboBox1.AddItem "125%"

ComboBox1.AddItem "100%"

ComboBox1.AddItem "80%"

ComboBox1.AddItem "50%"

ComboBox1.AddItem "12%"

End Sub

Установка и получение значения поля со списком

Чтобы получить или установить значение, хранящееся в текстовой части поля со списком, используется свойство Text объекта ComboBox. При присваивании значения данному свойству автоматически выполняются следующие действия:

· Заданный текст выводится в поле. Однако, если заданное значение не является элементом списка, то отображается сообщение об ошибке.

· Свойству ListIndex объекта ComboBox присваивается индекс элемента списка, соответствующего заданному значению.

Например, следующая программа выводит слово "красный" в окне отладки:

Private Sub UseForm_Click()

ComboBox1.AddItem "зеленый"

ComboBox1.AddItem "синий"

ComboBox1.AddItem "красный"

ComboBox1.AddItem "белый"

ComboBox1.Text ="красный"

I= ComboBox1.ListIndex

Debug.Print ComboBox1.List ( I )

End Sub

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

Например, следующая программа выводит слово "красный " в окне отладки дважды:

Private Sub UseForm_Click()

ComboBox1.AddItem "зеленый"

ComboBox1.AddItem "синий"

ComboBox1.AddItem "красный"

ComboBox1.AddItem "белый"

ComboBox1.ListIndex = 3

Debug.Print ComboBox1.Text

Debug.Print ComboBox1.Value

End Sub

Элемент управления CheckBox (Флажок)создает ячейку, которая может быть помечена пользователем, как имеющая значение истина или ложь. Флажок представляет собой маленький квадрат, с которым связан заголовок. Если квадрат пуст, то при щелчке по нему появляется галочка, и наоборот, если квадрат помечен галочкой, то при щелчке по нему галочка исчезает. Элемент управления CheckBox может иметь три состояния (ложь, истина и неопределенное значение). Неопределенному значению флажка с тремя состояниями соответствует значение Null.

Установка заголовка флажка

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

Если заголовок флажка имеет большую длину, то можно присвоить свойству WordWrap значение True, чтобы разместить текст надписи в нескольких строках.

Определение состояния флажка

Для этого используют свойство Value, значение которого показывает, установлен флажок (True) или нет (False). Состояние флажка обычно используется в процедуре обработки события флажка Нажатие кнопки, либо при принятии решения о выполнении некоторого действия, например:

Private sub CheckBox1_Click()

If CheckBox1.Value = True Then

'операторы

Else

'операторы

End If

End Sub

Public Sub LaunchTask()

If CheckBox1.Value Then

'Действие А

Else

'Действие Б

End If

End sub

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

Группировка переключателей

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

В VBA имеются два способа выполнения группировки переключателей:

· С помощью рамки. Все элементы управления OptionButton, расположенные в одном объекте Frame, рассмативаются как члены одной группы. Недостатком такого подхода является необходимость использовать дополнительную рамку для каждого набора переключателей.

· С помощью свойства GroupName. При выборе элемента управления OptionButton отменяется выбор всех переключателей, значение свойства GroupName которых совпадает со значением того же свойства выделенного объекта. Данный метод не требует создания дополнительных элементов управления и позволяет задать в форме произвольное число групп переключателей.

Значение свойства GroupName элемента управления OptionButton можно установить как в программе, так и в окне свойств.

Определение выбранного переключателя

Свойству Value выбранного пользователем переключателя автоматически присваивается значение True. Поскольку известно, какие переключатели входят в группу, необходимо просто проверить, свойство Value какого из них имеет значение True.

Пример программы выбранного переключателя:

Public Sub CheckOptionsButtons()

If OptionsButton1.Value Then

'операторы

ElseIf OptionsButton2.Value Then

'операторы

ElseIf OptionsButton3.Value Then

'операторы

End If

End Sub

Элемент управления Frame (Рамка)используется для группировки элементов управления в форме.

Свойства рамки

Поскольку элемент управления Frame имеет весьма ограниченный круг применения, у него есть всего несколько свойств и методов. Свойство Caption определяет текст, который появляется вверху рамки. Например:

Frame1.Caption = "Visual Basic"

Элемент управления SpinButton (Счетчик)используется для задания числового значения. Нажимая одну из двух кнопок счетчика, можно либо увеличить, либо уменьшить текущее значение в другом элементе управления, обычно в поле. Можно также установить значение счетчика непосредственно с клавиатуры.

Программирование счетчика.

Для изменения значения в связанном со счетчиком элементе управления необходимо использовать события, связанные с нажатием кнопок объекта SpinButton.

При нажатии кнопок элемента управления SpinButton возникают следующие события:

Private Sub SpinButton1_SpinUp()

End Sub

Private Sub SpinButton1_SpinDown()

End Sub

События SpinUp и SpinDown используются для изменения значения в связанном элементе управления. Свойство Value счетчика автоматически изменяется, когда пользователь нажимает его кнопку. Требуется написать процедуры, в которых при нажатии кнопки счетчика присваивается значение связанному со счетчиком объекту:

Private Sub SpinButton1_SpinUp()

TextBox1.Value = SpinButton1.Value

End Sub

Private Sub SpinButton1_SpinDown()

TextBox1.Value = SpinButton1.Value

End Sub

Пример использования счетчика для изменения названия месяца:

Private Sub SpinButton1_SpinUp()

TextBox1.Value = GetMonthName(SpinButton1.Value)

End Sub

Private Sub SpinButton1_SpinDown()

TextBox1.Value = GetMonthName (SpinButton1.Value)

End Sub

Private Fuction GetMonthName(iMonth As Integer) As String

If iMonth =13 Then

iMonth = 1

ElseIf iMonth =0 Then

iMonth = 12

End if

Select Case iMonth

Case 1

GetMonthName ="январь"

Case 2

GetMonthName ="февраль"

Case 3

GetMonthName ="март"

Case 4

GetMonthName ="апрель"

Case 5

GetMonthName ="май"

Case 6

GetMonthName ="июнь"

Case 7

GetMonthName ="июль"

Case 8

GetMonthName ="август"

Case 9

GetMonthName ="сентябрь"

Case 10

GetMonthName =" октябрь "

Case 11

GetMonthName ="ноябрь"

Case 12

GetMonthName ="декабрь"

End Select

End Function

Элемент управления SpinButton имеет три свойства, которые используются при изменении его значения:

· Max определяет максимальное значение элемента управления. При попытке увеличить значение счетчика, когда оно уже равно максимальному, значение не изменяется.

· Min определяет минимальное значение элемента управления. При попытке уменьшить значение счетчика, когда оно уже равно минимальному, значение не изменяется.

· Value изменяется при нажатии кнопки счетчика. Данное свойство можно задать как в программе, так и в окне свойств.

Элемент управления ToggleButton (Выключатель) создает кнопку, имеющую два состояния: включено и выключено.

Программирование выключателя

Свойство Value элемента управления ToggleButton имеет значение True, False или Null. В зависимости от конкретного случая можно либо выполнить некоторую операцию при изменении состояния выключателя, либо использовать значение свойства Value при запуске некоторой подпрограммы. В последнем случае можно передать подпрограмме состояние переключателя в качестве параметра.

Пример использования выключателя:

Public Sub ToggleButton1_Click()

If ToggleButton1.Value Then

'операторы

Else

'операторы

End If

End Sub

Public Sub SomeTask()

TaskName(ToggleButton1.Value)

End Sub

Выполнение лабораторной работы

1. Добавить форму в проект. Для этого:

· Выбрать имя проекта в окне проекта, в который требуется добавить форму;

· Выбрать команду Insert\UserForm, после чего выведется пустая форма и набор инструментов;

· Вывести окно свойств и задать свойства новой формы, например, (Name -Форма1, Caption - Форма1).

2. Просмотреть набор дополнительных инструментов и добавить один из их на панель инструментов проекта. Для этого:

· Открыть требуемую форму;

· Выбрать команду Tools\Additional Controls,после этого выводится диалоговое окноAdditional Controls;Сбросить флажок Selected Items Only (Только выделенные объекты) для вывода всех доступных дополнительных элементов;

· Выбрать требуемый элемент управления, установив флажок против его имени (например, Элемент управления "Календарь" 9.0)

· Нажать кнопку "ОК". Выбранный элемент будет выведен на панели элементов.

3. Разместить различные элементы управления в форме. Для этого:

· Выбрать форму, в которую требуется добавить элементы управления (Форма1), при необходимости вывести панель элементов;

· Нажать на панели элементов кнопку требуемого элемента, а затем щелкнуть по любому месту формы. В форме выведется элемент управления;

· Перетащить элемент управления в требуемую позицию; изменить размеры элемента управления, перетащив его рамку. То же можно сделать и с формой.

4. Просмотреть внешний вид разрабатываемой формы. Для этого: Открыть форму и либо нажать клавишу F5, либо выполнить команду Rug Sub/UserForm

5. Выровнять элементы управления в форме. Для этого:

· Выделить несколько элементов управления (Щелкнуть по первому элементу, а затем, удерживая клавишу <Shift>, выделить другие объекты. Чтобы отменить выбор одного из выделенных объектов, нужно повторно щелкнуть по этому элементу, удерживая нажатой клавишу <Shift>);

· Выполнить команду Format\ Arrange Buttons\ Right (Формат\Выровнять по правому краю), а затем комаду Format\Make Same Size\Both (Формат\Выровнять\Размер\По ширине и высоте)

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

· Выбрать команду View\Tab Order,после чего в появившемся окне Tab Order расставить требуемым образом названия элементов управления в этом списке, выделив имя объекта и нажав кнопку "Move Up" или " Move Down".

· Нажать кнопку "ОК" для сохранения последовательности перехода, а затем клавишу <F5> для просмотра формы.

7. Связать объект в форме с кодом. Для этого дважды щелкнуть по элементу управления в форме. В появившемся окне модуля для выбранного объекта выберите событие, для которого требуется создать процедуру обработки, в списке, расположенном в верхнем правом углу окна модуля.

8. Создать и отладить VBA-код, связанный с элементом управления TextBox (Поле). Для этого:

· Создать новую форму (Name - Форма2, Caption - Форма2)

· Разместить в ней в следующей последовательности слева направо:
Поле (Name -Множимое, TabIndex - 1)

· Надпись (Caption - X, TabIndex - 0, Enabled - False)

· Поле (Name - Множитель, TabIndex - 2)

· Надпись (Caption - =, TabIndex - 0, Enabled - False)

· Поле (Name - Произведение, TabIndex - 3, Enabled - False)

· Связать поле Множимое и поле Множитель с кодом. Для этого дважды щелкните по соответствующему элементу управления и введите следующие тексты:

Private Sub Множимое_Change()

Dim a As Single

Dim b As Single

Dim c As Single

If Множитель.Value <> "" Then

a = Val(Множимое.Value)

b = Val(Множитель.Value)

c = a * b

Произведение.Value = Str(c)

End If

End Sub

Private Sub Множитель_Change()

Dim a As Single

Dim b As Single

Dim c As Single

If Множимое.Value <> "" Then

a = Val(Множимое.Value)

b = Val(Множитель.Value)

c = a * b

Произведение.Value = Str(c)

End If

End Sub

· Проверить работу этих программ нажатием клавиши F5 с последующим вводом чисел в поля.

9. Создать и отладить VBA-код, связанный с элементами управления CommandButton (Кнопка) и ListBox (Список). Для этого:

· Создать новую форму (Name-Форма3, Caption- Форма3)

· Разместить в ней элементы управления:

Список (Name - Список_дн)

· Поле (Name - Элемент)

· Кнопка (Name - Заполнение, Caption - Заполнение)

· Связать Список Список_дн и Кнопку Заполение с кодом. Для этого дважды щелкните по соответствующему элементу управления и введите следующие тексты:

Private Sub Заполнение_Click()

Список_дн.AddItem "Понедельник"

Список_дн.AddItem "Вторник"

Список_дн.AddItem "Среда"

Список_дн.AddItem "Четверг"

Список_дн.AddItem "Пятница"

Список_дн.AddItem "Суббота"

Список_дн.AddItem "Воскресенье"

End Sub

Private Sub Список_дн_Change()

Элемент.Text = Список_дн.Text

End Sub

· Проверить работу этих программ нажатием клавиши F5. Сначала нажать кнопку, а затем выбрать элемент из списка.

ЛАБОРАТОРНАЯ РАБОТА №4.

Цель лабораторной работы

Лабораторная работа предназначена для получения практических навыков создания кодов VBA в EXCEL, что предполагает знание свойств и методов таких объектов EXCEL, как: Application, Workbook, Worksheet, Range.

Содержание лабораторной работы

Создать 3 таблицы на разных рабочих листах. Первая таблица содержит информацию о работающих (Табельный номер, Фамилия, Разряд), вторая – справочник по разрядам (Разряд, Оклад). Третья должна содержать сведения о начислении зарплаты (Табельный номер, Фамилия, Коэффициент отработанного времени, Начислено).

Требуется написать VBA-код для заполнения таблиц. Ввод информации в исходные таблицы должен быть организован с использованием пользовательских диалоговых окон (форм).

ЛАБОРАТОРНАЯ РАБОТА №5.

Цель лабораторной работы

Лабораторная работа служит для получения практических навыков по использованию возможностей языка Visual Basic for Applications при создании процедур обработки текста с помощью свойств и методов объектов Word 2000.

Содержание лабораторной работы

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

- создание процедуры преобразования набранного в английской раскладке клавиатуры текста в соответствии с русской раскладкой на основе предлагаемого алгоритма и ее отладка;

- написание процедуры созд

Наши рекомендации