Пособие по программированию для microsoft excel на visual basic for applications (vba) - shikardos.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Пособие по программированию для microsoft excel на visual basic for applications - страница №1/1

 

 

 



 

 

 



 

 

 



 

 

МЕТОДИЧЕСКОЕ ПОСОБИЕ



ПО ПРОГРАММИРОВАНИЮ ДЛЯ

MICROSOFT EXCEL

НА VISUAL BASIC for APPLICATIONS (VBA)

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

Ставрополь, 2010



  1. 1.Введение

 

 

Язык Visual Basic for Applications является одной из версий популярного языка разработки приложений Visual Basic. В чём же отличия двух языков?



Язык Visual Basic разрабатывался для создания законченных самостоятельных приложений, VBA используется для автоматизации существующих приложений

Visual Basic имеет собственную среду программирования, VBA использует среду приложения

Для выполнения разработанной программы созданной в Visual Basic, пользователю не обязательно иметь доступ к самой среде программирования, т.к. разработанные приложения можно скомпилировать в .EXE файлы. VBA - приложения могут выполняться только в том приложении, в котором они были созданы

Общими для VBA и VB являются:



Язык программирования (во всех аспектах – типы данных, правила объявления и использования переменных, процедур и функций)

Во многом похожие средства разработки и отладки программ

Аналогичные модели объектно-ориентированного и событийно-управляемого программирования

Общие библиотеки объектов, механизмы подключения и использования библиотек

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



Автоматизировать повторяющиеся действия

Настроить интерфейс Excel с помощью модификации существующих или создания новых панелей инструментов, меню и пользовательских форм

Вносить дополнительную функциональность в среду Excel

 

 1.1    Запись макросов


 

Макрос - это записанная последовательность команд и действий пользователя, сохранённая под уникальным именем, которую может выполнить Excel.

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

Имя макроса может содержать до 255 символов и должно начинаться с буквы. В имя могут входить буквы, цифры и знаки подчёркивания. Пробелы в именах макросов не допускаются.

Рассмотрим процедуру записи простого макроса, который изменяет шрифт и цвет в выделенном диапазоне ячеек.

1. Откройте новую рабочую книгу

2. В ячейку А1 введите вашу фамилию, в ячейку В1 - имя, в ячейку С1 - номер группы

3. Перейдите в ячейку А1

4. Выполните команду Сервис/ Макрос/ Начать запись. Появится диалоговое окно Запись макроса, показанное на рис.1

png" align=bottom width="337px" height="247px" border=0>

Рис. 1 Диалоговое окно Запись макроса

 

5. Введите название макроса МойПервыйМакрос, и нажмите ОК. На экране появится панель инструментов Остановить запись.



6. Выполните команду Формат/ Ячейки. В диалоговом окне Формат ячеек перейдите на вкладку Шрифт

7. Установите размер шрифта 18 пунктов, цвет - красный. Щёлкните на кнопке ОК

8. Щёлкните на кнопке Остановить запись одноимённой панели инструментов.

 

1.2    Выполнение макросов


 

При выполнении макроса Excel повторяет те же действия, которые вы выполняли в процессе его создания. Для выполнения макроса нужно проделать следующую последовательность действий:

1. Выделите ячейку В1

2. Выполните команду Сервис/ Макрос/ Макросы. Появится диалоговое окно Макрос



Рис. 2 Диалоговое окно Макрос

 

3. Выделите макрос МойПервыйМакрос и щёлкните на кнопке Выполнить. Шрифт в ячейке В1 станет красным и размером 18 пунктов



4. Проделайте туже последовательность действий для ячейки С1

 

1.3    Просмотр кода макроса


 

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

 


  1. Выберите команду Сервис/ Макрос/ Макросы. Отобразится диалоговое окно Макрос

  2. Выделите макрос МойПервыйМакрос и щёлкните на кнопке Изменить. Откроется окно редактора Microsoft Visual Basic, показанное на рис. 3

Рис. 3 Окно редактора Microsoft Visual Basic

 

Первая строка макроса Sub МойПервыйМакрос () - представляет собой начало процедуры выполнения макроса и его имя. Следующие строчки, в начале которых стоит одиночная кавычка, являются комментариями, поясняют отдельные строки макроса.



 

 

1.4    Редактирование кода макроса

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

Редактировать код можно в редакторе Visual Basic. Попробуем изменить код макроса:

 


  1. Выделите строку, которая начинается с .Name

  2. Удалите эту строку, нажав клавишу Delete

  3. Продолжайте удалять строки, пока не останется следующий фрагмент программы

 

Sub МойПервыйМакрос()

'

' МойПервыйМакрос Макрос



' Макрос записан 02.07.2001 (Serg)

'

 



'

With Selection.Font

.Size = 18

.ColorIndex = 3

End With

End Sub


 

 


  1. Закройте окно редактора Visual Basic и вернитесь в свою рабочую книгу

  2. В ячейке Е1 введите слово Тест

  3. Не снимая выделения с ячейки Е1, выполните макрос МойПервыйМакрос, Вы видите, что макрос работает точно также, как и до удаления строк кода

  4. Выполните команду Сервис/ Макрос/ Макросы

  5. В диалоговом окне Макрос выделите макрос МойПервыйМакрос и щёлкните на кнопке Изменить

  6. Измените размер шрифта с 18 пунктов на 24. Код макроса должен выглядеть следующим образом:

 

Sub МойПервыйМакрос()

'

' МойПервыйМакрос Макрос



' Макрос записан 02.07.2001 (Serg)

'

'



With Selection.Font

.Size = 24

.ColorIndex = 3

End With


End Sub

 


  1. Закройте окно редактора Visual Basic и вернитесь в рабочую книгу

  2. Выделите ячейку А1 и выполните макрос МойПервыйМакрос. Вы заметите, что шрифт в ячейке А1 увеличился

 

1.5    Что нельзя сделать с помощью макросов?


 

  1. Ввести какую-либо информацию во время выполнения макроса

  2. Отобразить диалоговые окна Excel, например, Сохранить документ

 

1.6    Удаление макросов


 

  1. Выполните команду Сервис/ Макрос/ Макросы. Появится диалоговое окно Макрос

  2. Выделите макрос, подлежащий удалению, и щёлкните на кнопке Удалить

  3. Появится окно, требующее подтверждения на удаление макроса

Рис. 4 Окно Excel запрашивающее подтверждение удаления макроса

 


  1. Щёлкните на кнопке Да, и макрос будет удалён

 

1.7    Назначение макросов командным кнопкам


 

Пользователь, который занимается разработкой приложений, должен быть заинтересован в автоматизации задач, и находить простые пути реализации намеченной цели. Самый доступный способ - использование командных кнопок непосредственно на листе рабочей книги Excel. Вставить командную кнопку можно с помощью панели инструментов Формы. Затем можно назначить ей любой макрос. После выполнения этих действий щелчок на командной кнопке будет вызывать на выполнение назначенный макрос.

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

1. Выполним команду Вид/ Панели инструментов/ Формы. Появится панель, как на рис. 5



Рис. 5 Панель инструментов Формы

 

2. Щёлкните на инструменте Кнопка панели инструментов Формы. Указатель мыши примет форму небольшого чёрного перекрестия



3. Поместите указатель мыши в то место, где хотите разместить командную кнопку, нажмите и не отпускайте левую кнопку мыши. Перетащите указатель мыши для создания прямоугольника. Придав командной кнопке нужный размер, отпустите кнопку мыши. После появления на рабочем листе командной кнопки одновременно откроется диалоговое окно Назначить макрос объекту.

Рис. 6 Окно Назначить макрос объекту

 


  1. Выберите макрос МойПервыйМакрос и щёлкните на кнопке ОК. Этот макрос будет назначен созданной кнопке

  2. Щёлкните и выделите надпись Кнопка1 на командной кнопке. Нажав клавишу Delete и удалив надпись, введите текст новой надписи, например РазмерШрифта

  3. Установив указатель мыши на один из маркеров, которые окружают командную кнопку, Вы можете изменить размеры созданной кнопки

  4. Щёлкните вне кнопки, чтобы снять с неё выделение

  5. В ячейку А5 введите номер своей группы и нажмите Enter

  6. Щёлкните на ячейке А5, а затем на созданной командной кнопке. Выполнится макрос МойПервыйМакрос

 

1.8    Назначение макроса графическим изображениям


 

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



  1. Выделите ячейку рабочего листа, где будет вставлено изображение

  2. Выполните команду Вставка/ Рисунок/ Картинки

  3. Выберите изображение для вставки в рабочий лист

Рис. 7 Вставка графического объекта

 


  1. После вставки изображения измените его размеры, чтобы они составляли 5х5 см

Рис. 8 Диалоговое окно Назначить макрос объекту



  1. Щёлкните правой кнопкой мыши на изображении и в открывшемся меню выберите команду Назначить макрос. Отобразится окно, представленное на рис. 8.

  2. Выберите макрос МойПервыйМакрос и щёлкните на кнопке ОК.

  3. Щёлкните вне графического изображения, чтобы снять с него выделение.

  4. Введите число 2011 в ячейку А10.

  5. Выделите ячейку А10 и щёлкните на графическом изображении. Выполнится макрос МойПервыйМакрос

 

1.9    Назначение макросов кнопкам панелей инструментов


 

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

Выполните команду Сервис/ Настройка. Появится диалоговое окно Настройка.

Рис. 9 Диалоговое окно для добавления кнопок на панели инструментов

 

  2. Перейдите на вкладку Команды (рис. 9)



3. В списке Категории выберите Макросы

4. В списке Команды выберите команду Настраиваемая кнопка

5. Перетащите команду Настраиваемая кнопка на какую-либо панель инструментов

6. Щёлкните правой кнопкой мыши на вновь добавленной кнопке. Появится контекстное меню (Рис. 10)

7. В контекстном меню кнопки выберите пункт Выбрать значок для кнопки и в открывшемся списке значков выберите любой значок

8. Снова щёлкните правой кнопкой мыши на новой кнопке и выполните команду Назначить макрос. Откроется диалоговое окно.

9. Выберите макрос МойПервыйМакрос и щёлкните ОК

10. Щёлкните на кнопке Закрыть диалогового окна Настройка

11. В ячейку В10 введите число 2011

12. Выделите ячейку В10 и щёлкните на созданной кнопке. Должен выполнится макрос МойПервыйМакрос

Рис. 10 Контекстное меню при назначении макроса командной кнопке

 

 



2.       Введение в процесс разработки приложений

 

Если Вы собираетесь заниматься проектированием приложения, то, наверное, представляете не только, как оно будет выглядеть (внешний вид интерфейса), но и степень сложности работы с Вашей программой, учитывая то обстоятельство, что с ней может работать и новичок, и опытный пользователь.



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

Если Вы хотите, чтобы с Вашим приложением с удовольствием работали и новичок и профессионал, то Вам следует воспользоваться Экранными формами или как их ещё называют - пользовательскими формами (от английского - UserForm). Созданием на форме объектов управления и установкой значений свойств этих объектов (о чём будет рассказано позже), пользователь создаёт себе условия для работы с будущим приложением как с обычным диалоговым окном. Проделайте следующие действия по вставке Экранной формы:

1. Выполните команду Сервис/ Редактор Visual Basic. Откроется окно редактора Visual Basic

2. Выберите в меню пункт Insert, а в нём пункт UserForm. Появится новая экранная форма, как на рис. 11



Рис. 11 Экранная форма для разрабатываемого приложения

 


  1. 2.1    Типы элементов управления

 

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



Рис. 12 Надпись - статическая область текста

 

Следующий инструмент, присутствующий на Панели элементов называется Текстовое поле (TextBox). В окнах, которые будут созданы с помощью этого инструмента на форме, Вы будете вводить данные и получать результаты (см. рис. 13)



Рис. 13 Текстовое поле - залог успешного ввода и вывода данных

 

С помощью инструмента Кнопка (CommandButton) на форме можно создать командную кнопку. Этот элемент управления знаком каждому пользователю, т.к. в Windows на каждом шагу мы встречаемся с кнопками OK, Отмена, Да, Нет.



Рис. 14 Создание командной кнопки

 

 

 



 

 

Следующие два элемента управления, флажок(CheckBox) и переключатель(OptionButton) (см. рис.15, 16), используются в ситуациях, когда пользователю надо сделать выбор из нескольких возможностей. Эти элементы имеют два устойчивых состояния: включено и выключено. Если флажки организованы в группу, то пользователь может установить в этой группе один или несколько флажков, а то и все. В отличие от флажков, в группе переключателей можно выбрать только один.



Рис. 15 Окно формы с созданными флажками

 

 

Ещё два элемента управления, которые можно поместить на форму, - полосы прокрутки (ScrollBar) и счётчик (SpinButton). Полосы прокрутки как элементы управления - это не совсем то, чем мы пользуемся для прокрутки рабочего листа, в данном случае полосы прокрутки применяются в качестве механизмов выбора, например, в графических программах с их помощью можно сделать изображение более светлым или более тёмным.



 

Рис. 16 Окно формы с созданными переключателями

 

Элементы управления, можно вставлять не только в экранную форму, но и в рабочие листы.



 

2.2    Вставка элементов управления в рабочий лист


 

Процесс вставки элемента в рабочий лист почти ничем не отличается от рисования прямоугольника в программе Paint и заключается в следующем:

1. Выполните команду Вид/ Панели инструментов/ Формы

2. На панели элементов выберите элемент любой управления

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

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



Рис. 17 Окно Excel c элементами управления

 

 

2.3    Как осуществляется связь элемента управления с рабочим листом?


 

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

1. Поместите на рабочий лист флажок

2. Выделите его щелчком мыши

3. Щёлкните на нём правой кнопкой мыши и в контекстном меню выберите команду Формат объекта. Откроется диалоговое окно Формат элемента управления (см. рис. 18)

Рис. 18 Вкладка Элемент управления

 

4. Перейдите на вкладку Элемент управления



5. Щёлкнув в поле Связь с ячейкой и установив там курсор, щёлкните в ячейке А1, а затем на ОК

6. Щёлкните вне области флажка для снятия с него выделения

7. Установите флажок, щёлкнув на элементе Флажок. В ячейке А1 появится слово ИСТИНА

8. Сняв флажок, можно увидеть, что в ячейке А1 появилось слово ЛОЖЬ

 

 

Поработаем с инструментом Полоса прокрутки.



 

1. Создайте на рабочем листе полосу прокрутки

2. Щёлкните на ней правой кнопкой мыши и в контекстном меню выберите команду Формат объекта. Откроется диалоговое окно Формат элемента управления (см. рис. 19)

Рис. 19 Вкладка Элемент управления

 

3. Перейдите на вкладку Элемент управления



4. Щёлкнув в поле Связь с ячейкой и установив там курсор, щёлкните в ячейке А1, а затем на ОК

5. Щёлкните на полосе прокрутке на кнопке со стрелкой, направленной вправо. Значение в ячейке А1 увеличится на единицу. Продолжая щёлкать на этой кнопке, Вы увеличиваете значение в ячейке А3

 

 

 



 

 

 



 

 

 



 

 

3.       Программирование на VBA


 

Выше было сказано, что процесс создания экранной формы, называется разработкой интерфейса. Под интерфейсом понимают совокупность средств, обеспечивающих взаимодействие пользователя и программ вычислительной системы. При разработке интерфейса пользователь должен быть заинтересован в максимально простом и удобном способе ввода и вывода данных. Важна и эстетическая форма подачи программы: это и размер формы, её фон, шрифт надписей, звуковое и графическое сопровождение. Также мы говорили о том, что на экранной форме пользователь создаёт элементы управления: текстовые поля, метки, командные кнопки. Эти элементы являются объектами языка Visual Basic for Applications. Объект - одно из основных понятий не только VBA, но и других объектно-ориентированных языков программирования. Каждый объект имеет своё имя и является представителем некоторого класса подобных себе объектов. Под классом объектов подразумевается общее описание таких объектов, для которых характерно наличие множества общих свойств и общих действий, которые способны выполнять эти объекты. Существует, например, класс Командная кнопка - общее описание кнопок в окнах приложений. Кнопки могут быть разных размеров и цветов, иметь разные подписи, но имеют множество общих свойств и событий (например, щелчок мыши по кнопке). Началом работы алгоритма, а, следовательно, и программы, является какое-нибудь событие. Событием (Event) называется характеристика класса объектов, описывающая внешнее воздействие, на которое реагирует объект этого класса во время работы приложения. Объектно-ориентированное программирование основано на следующей идее: программы управляются событиями. Пояснить это можно так: после проектирования экранной формы устанавливаются события, и только затем программируются действия, связанные с этими событиями.

Код программы, написанной пользователем на VBA, хранится в модулях. Модуль - это совокупность объявлений и процедур, хранящихся как единое целое. Рассмотрим термин “процедура”.

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

 

Процедура - это независимая часть программы, которую можно вызвать по имени для выполнения определённых действий. Процедура выполняет один или несколько операторов и не возвращает значения. Примером процедуры является код макроса. Например:



Sub МойПервыйМакрос_Click()

With Selection.Font

.Size = 18

.ColorIndex = 3

End With

End Sub


 

Процедура обозначается словом Sub, End Sub говорит о том, что процедура закончена. Процедура выполняется в ответ на какое-либо событие или говорят, что процедура обрабатывает событие. Имя процедуры состоит из названия объекта МойПервыйМакрос, и события, Click (щелчок), которое отделяется знаком подчёркивания от названия объекта.

 

Функция аналогична процедуре, но отличается тем, что возвращает в точку вызова основной программы единственный результат. Например, Y= ABS(X); - определяет модуль числа X и возвращает результат в точку вызова Y.



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

Public Function Процент (число)

Процент = число*0.01/100

End Function

 

Функция может иметь аргумент Число. Аргумент Число может быть числом или ссылкой на ячейку рабочего листа. Величина процента является тем значением, которое возвращает функция.



 

В VBA существуют определённые правила для имён процедур и функций.



Первые три символа имени должны быть буквами

Имя может содержать буквы, цифры и знаки подчёркивания

Имя не может содержать пробелы, точки, запятые, восклицательные знаки и символы @, &, $, #

Имя не должно иметь более 255 символов

 

3.1    Объявление типа переменной


 

Переменные используются для хранения данных, которые могут изменяться в процессе выполнения процедуры. Объявление типа переменной означает, что пользователь устанавливает определённые границы, в которых может изменяться переменная. Тип переменной можно вообще не определять. Если тип переменной не объявляется, по умолчанию он принимается как тип Variant. В таблице 1 содержится информация о размере данных, т. е. об объёме памяти, выделяемом для хранения данных.

Типы данных в VBA

 

Таблица 1



Тип данных

Размер в байтах

Диапазон значений

Byte

1

0 … 255

Integer

2

-32768 … +32767

Long

4

-2 147 483 648 … +2 147 483 647

Boolean

2

True, False

String

10 + 1 байт на символ

0 … 2 млрд. символов

Variant

16

-1.797693Е308 … -4.9406564Е-324 для отрицательных чисел; 4.9406564Е-324 … 1.79769313Е308 для положительных чисел

 

Для объявления переменной используется оператор Dim. Этот оператор имеет следующий синтаксис:


Dim ИмяПеременной As ТипДанных

 

3.2    Общие правила написания имени переменной


 

 Имя переменной должны начинаться с буквы

 Имя может содержать буквы, цифры и знаки подчёркивания

 Имя не может содержать пробелы, точки, запятые, восклицательные знаки и символы @, &, $, #

 Имя не должно иметь более 255 символов

 

Можно не указывать тип данных при написании своих процедур и тогда по умолчанию VBA применит для Ваших переменных тип Variant. Но, просмотрев таблицу 1 можно увидеть, что ни один из типов данных не требует 16 байт для сохранения значений переменных. Неплохо бы экономить ресурсы памяти компьютера. Кроме того, не объявляя тип переменных вы рискуете получить результат выполнения Вашей программы, который будет далёк от ожидаемого.



3.3    Описание констант


 

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

 

Const ИмяКонстанты As ТипДанных = Значение



 

Например:

 

Const Gruppa As Integer = 25



 

 

4.       Применение условных операторов


 

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

 

Разветвляющийся алгоритм



 

Алгоритм называется разветвляющимся, если последовательность выполнения шагов алгоритма изменяется в зависимости от выполнения некоторых условий. Условие - это логическое выражение, которое может принимать одно из двух значений: “ДА” - если условие верно (истинно), и “НЕТ” - , если условие неверно (ложно).

 


  1. 4.1    Простой условный оператор

 

Общий вид в алгоритме конструкции простого условного оператора следующий:

 

 

 



 

 

Нет Да



 

 

 



 

 

 



 

 

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



 

If <логическое выражение> Then


P1
Else
P2

End If


 

Возможна и другая запись:

 

If <логическое выражение> Then P1 Else P2



где If, Then, Else, End If - зарезервированные слова, а P1, P2 - операторы.

 

Простой условный оператор работает по следующему алгоритму:



Сначала вычисляется логическое выражение. Если результат есть TRUE (истина), то выполняется оператор P1, а оператор P2 пропускается.
Если результат есть FALSE (ложь), то выполняется оператор P2, а оператор P1 пропускается.

 


  1. 4.2    Сокращённый условный оператор

 

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

Общий вид в алгоритме конструкции сокращённого условного оператора следующий:

Нет Да

 

 

 



 

 

 



Синтаксис сокращённого условного оператора, если Вы пишите программу структурно, следующий:

If <логическое выражение> Then


P1

End If
Возможна и другая запись:

 

If <логическое выражение> Then P1


где If, Then, Else, End If - зарезервированные слова, а P1 - оператор.



  1. 4.3    Составной условный оператор

 

Если при некотором условии надо выполнить определённую последовательность операторов, то их объединяют в один составной оператор. Общий вид в алгоритме конструкции составного условного оператора следующий:

 

 

 



 

 

Нет Да



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



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

If <логическое выражение> Then

P1

P2

.

.

PN



Else

M1

M2

.

.



Mn

End If


 

Возможна и другая запись:

 

If <лог. выраж.> Then P1 P2. . PN Else M1 M2 . . Mn



 

где If, Then, Else, End If - зарезервированные слова, а P1, P2,PN, M1, M2,MN - операторы

 

 


  1. 4.4    Многозначные ветвления

 

 

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



 

 

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



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

 

 



 

Нет Да


 

 

Нет Да



 

Нет Да

 

 

 



 

 

 



 

 

 



 

Синтаксис многозначных ветвлений, если Вы пишите программу структурно, следующий:

 

If <лог. выражение1> Then



P1

ElseIf <лог. выражение2> Then

P2

ElseIf <лог. выражение3> Then

P3

Else


P4

End If


 

 

 



Возможна и другая запись:

 

If <лог. выражение1> Then P1 ElseIf <лог. выражение2>Then P2 ElseIf <лог. выражение3> Then P3 Else P4



 

где If, Then, Else, End If - зарезервированные слова, а P1, P2,P3 P4,- операторы

Алгоритм работы такой конструкции следующий: если логическое выражение1 истинно, то выполняется оператор или блок операторов, следующих за конструкцией Then, в противном случае этот блок пропускается. Если логическое выражение, следующее за оператором If ложно, то анализируется логическое выражение, следующее за ElseIf. Если оно истинно, то выполняется оператор или блок операторов, следующих за Then, а остальные операторы пропускаются. Операторы, следующие за последним Else, выполняются лишь в том случае, если ложны все логические выражения в конструкциях If. Любая встретившаяся часть Else принадлежит ближайшей к ней части Then условного оператора. Условные операторы If в такой конструкции называются вложенными.

Рассмотрим пример использования простого условного оператора If.

1. Откройте новую рабочую книгу

2. Создайте таблицу, показанную на рис. 30



Рис. 30 Рабочий лист с примером

 

3. Вставьте модуль в рабочую книгу



4. Создайте процедуру и назовите её Абитуриент

5. Введите следующий код процедуры:

 

Dim ball As String



ball = MsgBox("Вы хотите поступить в КОЭК?", vbYesNo)

If ball = vbYes Then

Range("b4").Value = "Надо сдать экзамены"

Else


Range("b4").Value = "Идите в ПТУ"

End If


 

6. Перейдите в рабочую книгу

7. Вставьте командную кнопку в рабочий лист. В списке Имя макроса выберите процедуру Абитуриент и щёлкните на кнопке Ок

8. Дайте кнопке новое имя - Вопрос. Получим лист как на рис. 31



Рис. 31 Законченный рабочий лист

 

9. Щёлкните на кнопке Вопрос. Отобразится окно сообщения (рис.32)



Рис. 32 Вопрос, требующий ответа

 

В этом примере значение переменной ball проверяется условным оператором If. После применения оператора Range("b4").Value = "Надо сдать экзамены" в ячейку b4 рабочего листа заносится, то выражение, которое находится справа от оператора присваивания либо - "Надо сдать экзамены", либо - "Идите в ПТУ"



 

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

Таблица 5


Оператор сравнения

Его назначение

=

Равно

>

Больше

<

Меньше

>=

Больше или равно

<=

Меньше или равно

<>

Не равно

Таблица 6



Логический оператор

Описание

And (И)

Если оба условия, соединённые этим оператором имеют значение ИСТИНА, то результат - ИСТИНА, в противном случае - ЛОЖЬ

Or (ИЛИ)

Если хотя бы одно из условий, соединённых этим оператором, имеет значение ИСТИНА, то результат - ИСТИНА, в противном случае - ЛОЖЬ

Not (Не)

Если логическое выражение имеет значение ЛОЖЬ, то результат применения к нему этого оператора - ИСТИНА. Если логическое выражение имеет значение ИСТИНА, то результат применения оператора - ЛОЖЬ.

Xor (исключающее ИЛИ)

Если одно и только одно из условий, соединённых этим оператором, имеет значение ИСТИНА, то результат - ИСТИНА. Если оба условия имеют значения ИСТИНА или ЛОЖЬ, то результат - ЛОЖЬ

 

 


  1. 4.5    Оператор выбора Select Case

 

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



    1. 1.           В редакторе Visual Basic напишите код процедуры, как на рис. 34

 

Рис. 34 Код процедуры Ball

 

2.Запустите её на выполнение и убедитесь в том, что она работает



На этом примере видно, что за счёт вкладывания одного условного оператора в другой, конструкция усложняется, становится тяжёлой для восприятия. В подобных случаях хорошей альтернативой оператору If служит оператор выбора Select Case, который позволяет выбрать одно из нескольких возможных продолжений программы.

 

Синтаксис оператора Select Case следующий:



 

Select Case КлючВыбора

Case Is выражение

оператор


Case диапазон значений

оператор


Case диапазон значений

оператор


Case диапазон значений

оператор


Case Else

оператор


End Select

 

Например:



 

Select Case vozrast

Case Is <=7

Msgbox”Ты дошкольник”

Case 8 to 16

Msgbox”Ты учишься в школе”

Case 17 to 30

Msgbox”Тебе пора заняться делом”

Case 31 to 60

Msgbox”Кто не работает, тот не ест”

Case Else

Msgbox”Вы заслужили отдых”

End Select

 

Если значение переменной vozrast меньше или равно 7, отображается сообщение ”Ты дошкольник”. Если значение переменной vozrast находится в диапазоне от 8 до 16, отображается сообщение ”Ты учишься в школе”. Если значение переменной vozrast находится в диапазоне от 17 до 30, отображается сообщение ”Тебе пора заняться делом”. Если значение переменной vozrast находится в диапазоне от 31 до 60, отображается сообщение ” Кто не работает, тот не ест”. Если значение возраста не равно ни одному из предложенных диапазонов значений, выводится сообщение ”Заслуженный отдых”.



1. В редакторе Visual Basic напишите код процедуры, как на рис. 35

Рис. 35 Код процедуры Ball с оператором Select Case

 

2. Запустите её на выполнение и убедитесь в том, что она работает



Вы видите, что код этой процедуры более прост для восприятия, и в случае трёх и более возможных разветвлений в программе лучше использовать оператор Select Case.