Автоматизация Excel-приложений 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Автоматизация Excel-приложений



Кафедра информатики и ТСО

Автоматизация Excel-приложений

С помощью Visual Basic for Applications

 

 

Учебно-методическое пособие по курсу

«Программное обеспечение ЭВМ»

для студентов 3 курса дневного отделения

физико-математического факультета

 

Курск

2003

Печатается по решению

Редакционно-издательского

Совета КГУ

 

 

Автоматизация Excel-приложений с помощью Visual Basic for Applications: Учебно-методическое пособие по курсу «Программное обеспечение ЭВМ» для студентов 3 курса дневного отделения физико-математического факультета / Сост. В.Б. Тарасюк. – Курск: Изд-во Курск.гос. ун-та, 2003. – 44 с.

 

Учебно-методическое пособие предназначено для студентов, обучающихся по специальности 03100.00 – информатика.

В пособии рассматриваются основные принципы автоматизации приложений с помощью Visual Basic for Applications, приводятся основные сведения о языке VBA, содержатся варианты индивидуальных заданий, выполняемых в рамках лабораторного практикума по курсу “Программное обеспечение ЭВМ” при изучении раздела “Табличные процессоры”; даются методические рекомендации по выполнению индивидуальных заданий. В приложении представлены примеры типовых программных решений.

     Рекомендуется всем желающим при самостоятельном изучении Visual Basic for Applications применительно к автоматизации Еxcel-приложений.

 

© Тарасюк В.Б., 2003 г.

© Курский государственный педаг университет, 2003 г.

 

Содержание

 

 

Введение........................................................................................................................... 4

I. Постановка задачи........................................................................................................ 6

II. Этапы разработки приложения................................................................................... 6

III. Особенности интерфейса VBA.................................................................................. 7

IV. Некоторые сведения о языке Visual Basic for Applications..................................... 11

4.1. Основные понятия................................................................................................ 11

4.2. Типы данных......................................................................................................... 13

4.3. Правила присвоения имен в VB.......................................................................... 14

4.4. Проверка синтаксических ошибок...................................................................... 14

V. Пример создания приложения.................................................................................. 15

VI. Тематика индивидуальных заданий......................................................................... 24

VII. Библиографический список................................................................................... 29

Приложение 1................................................................................................................. 30

Приложение 2................................................................................................................. 37

 

 


Введение

 

Табличный процессор Excel обладает богатыми возможностями по построению приложений, ориентированных на решение самых разнообразных задач. Использование встроенных функций позволяет составлять весьма сложные расчетные таблицы, применяемые в различных сферах производственной, учебной и научной деятельности. Применение мастера построения диаграмм помогает визуализировать информацию, облегчая тем самым анализ и интерпретацию результатов. Инструменты обработки данных, такие как фильтрация, сортировка, подведение промежуточных итогов и т.п., незаменимы при работе с большими информационными массивами. Расширенные возможности Excel, благодаря таким инструментам, как сценарии, поиск решения, пакет анализа и т.п., предусматривают возможность решения задач углубленного анализа и прогнозирования. Однако самым мощным компонентом, расширяющим возможности Excel, представляется язык программирования Visual Basic for Applications (VBA).

Использование VBA выводит пакет Excel на качественно новый уровень. Макросы – программы, написанные на VBA, – придают Excel-приложениям гибкость, технологичность, большую защищенность данных, автоматизируют выполнение рутинных действий. Все эти возможности позволяют использовать табличный процессор Excel как инструмент разработки прикладного программного обеспечения для автоматизированных рабочих мест (АРМ) самого разнообразного назначения.

Как и любая среда программирования, VBA обладает не только определенными достоинствами, но и недостатками. К числу достоинств относится возможность широкого использования таких объектов, как готовые рабочие листы, рабочие книги и т.п., а также высокая степень интеграции VBA с другими приложениями Office, полная прозрачность проекта, гибкость и адаптивность к изменяющимся задачам, возможность создания интерфейса для конечного (непрограммирующего) пользователя. Отмеченные достоинства характеризуют Excel как незаменимый инструмент для создания макетов пилотных проектов АРМ или высокоэкономичных многофункциональных АРМ для малых предприятий. Ограничением возможностей Excel-приложений является жесткая привязка к пакету Office, определяющая их медлительность и относительно высокую степень уязвимости для несанкционированного доступа.

Использование VBA как учебного инструмента для создания учебных АРМ имеет свои дополнительные плюсы. Во-первых, прозрачность и наглядность Excel-проекта упрощает задачу его конструирования; во-вторых, обеспечивается возможность блочно-модульного принципа его построения, в третьих, глубже изучается сам пакет, техника объектно-ориентированного программирования. В четвертых, экономичность и технологичность приложений, использующих VBA, позволяет учащемуся полностью сосредоточиться на принципиальных вопросах создания АРМ.

Язык VBA имеет множество диалектов, созданных в разное время для конкретных Office-приложений. Предлагаемое пособие использует в качестве базисной версию VB for Excel’97–2000.

Данное учебное пособие рассматривает вопросы создания АРМ на базе Excel-приложений с использованием VBA. Задания выполняются в рамках лабораторного практикума по курсу «Программное обеспечение ЭВМ» и относится к разделу «Прикладное программное обеспечение». На выполнение и защиту задания отводится 12 часов.

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


I. Постановка задачи

 

Цель работы – разработать компонент прикладного программного обеспечения для автоматизированного рабочего места в виде Excel-VBA-приложения.

Критерии, предъявляемые к разрабатываемому приложению:

· функциональность – соответствие приложения реальным технологическим задачам, для решения которых оно предназначено;

· открытость – наличие возможности расширения функций и интеграции с другими компонентами АРМ;

· технологичность – простота в эксплуатации, высокая устойчивость к ошибочным действиям конечного пользователя;

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

Требования к содержанию отчета.

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

§ уточненный перечень задач, решаемых приложением;

§ блок-схема информационной модели;

§ состав оперативных исходных данных;

§ состав условно-постоянных исходных данных;

§ таблица соответствия переменных и констант приложения;

§ инструкция пользователя;

§ предложения по совершенствованию приложения.

Защита проекта.

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

 

Основные понятия

 

Объект представляет собой элемент приложения, например, «лист», «ячейка», «диаграмма», «форма» или «отчет». В программе на языке Visual Basic необходимо идентифицировать объект, прежде чем применять к нему методы или изменять значения его свойств.

Метод представляет собой действие, выполняемое над объектом. Например, Add – метод объекта ComboBox, поскольку он добавляет новую запись в поле со списком.

В следующей процедуре для внесения нового элемента в объект ComboBox (поле со списком) используется метод Add.

 

End Sub

 

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

 

Чтобы задать значение свойства, надо указать объект, через точку указать имя свойства, затем знак равенства (=) и новое значение свойства. Например, в следующей процедуре изменяется заголовок формы Visual Basic посредством задания свойства Caption.

 

 

Sub ChangeName(newTitle)

       myForm.Caption = newTitle

End Sub

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

 

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

· инструкции описания, именующие переменные, константы или процедуры, а задающие типы данных;

· инструкции присвоения, присваивающие значение или выражение переменной или константе;

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

Обычно инструкция располагается на одной строке, но ее можно продолжить и на следующую строку с помощью символа продолжения строки – "_".

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

По умолчанию комментарии выделяются в тексте зеленым цветом.

 

Типы данных

 

Допускаемые VBA типы данных приведены в таблице 1.

 

Таблица 1

Типы данных VBA

 

Наименование Размер Диапазон значений
Byte (байт) 1 байт От 0 до 255
Boolean (логический) 2 байта True или False
Integer (целое) 2 байта От -32 768 до 32 767
Long (длинное целое) 4 байта От -2 147 483 648 до 2 147 483 647
Single (с плавающей точкой обычной точности) 4 байта От -3,402823E38 до -1,401298E-45 для отрицательных значений; от 1,401298E-45 до 3,402823E38 для положительных значений
Double (с плавающей точкой двойной точности) 8 байт От -1,79769313486232E308 до -4,94065645841247E-324 для отрицательных значений;  от 4,94065645841247E-324 до 1,79769313486232E308 для положительных значений
Currency (денежный) 8 байт От -922 337 203 685 477,5808 до 922 337 203 685 477,5807
Decimal (масштабируемое целое) 14 байт +/-79 228 162 514 264 337 593 543 950 335 без дробной части; +/-7,9228162514264337593543950335 с 28 знаками справа от запятой; минимальное ненулевое значение имеет вид +/-0,0000000000000000000000000001
Date (даты и время) 8 байт От 1 января 100 г. до 31 декабря 9999 г.
Object (объект) 4 байта Любой указатель объекта
String  (строка переменной длины) 10 байт + длина строки От 0 до приблизительно 2 миллиардов
String (строка постоянной длины) Длина строки От 1 до приблизительно 65 400
Variant (числовые подтипы) 16 байт Любое числовое значение вплоть до границ диапазона для типа Double
Variant (строковые подтипы) 22 байта + длина строки Как для строки (String) переменной длины
Тип данных, определяемый пользователем (с помощью ключевого слова Type) Объем определяется элементами Диапазон каждого элемента определяется его типом данных

 

Массивы любых типов данных требуют 20 байт памяти плюс 4 байта на каждую размерность массива плюс число байт, требуемых для хранения данных. Объем памяти, требуемый для сохранения данных, рассчитывается как произведение числа элементов на размер элемента. Например, данные в одномерном массиве, который содержит четыре элемента типа Integer, требующих по 2 байта на элемент, занимают 8 байт. Вместе с 20 байтами на массив и 4 байтами на размерность общий требуемый объем составляет 32 байта.

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

 

V. Пример создания приложения

 

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

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

Поставленные в общем виде требования должны быть уточнены и сформулированы в виде задач:

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

2) хранение информации о реквизитах предприятия-оператора;

3) хранение бланка билета;

4) автоматизированное формирование билета в соответствии с выбранным маршрутом, имеющейся льготой, временем отправления с расчетом цены и только при наличии свободных мест;

5) распечатывание билета или пустого бланка билета;

6) автоматическое обновление оставшихся свободных мест в процессе работы приложения;

7) автоматизированная реинициализация системы в начале рабочего дня.

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

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

 

 

 


Рис.3. Блок-схема информационной модели приложения

 

После уточнения информационной модели создаются макеты таблиц для хранения данных и форма билета. Таблица, предназначенная для хранения данных о маршрутах, помещается на рабочем листе «Расписание». Макет этой таблицы приведен на рис. 4.

 

  A B C D E F G
1 Пункт назначения Рейс Время отправления Время в пути Тариф Место Свободных мест
2 Воронеж 24 07:30 5 110 19 22
3 Воронеж 33 12:00 5 110 5 36
4 Белгород 55 8:20 2 55 8 33
5 Белгород 74 11:50 3 55 5 34
6 Орел 55 13:45 4 50 39 2
7 Железногорск 76 15:00 2 70 0 0
8 Москва 55 13:05 9 250 0 0
9 Москва 45 19:30 9 220   23
10 Харьков 67 12:40 5 170   27
11              
12              
13              

 

Рис.4. Фрагмент таблицы «Расписание»

 

Таблица для хранения реквизитов предприятия размещается на рабочем листе «Реквизиты» и выглядит, как показано на рис. 5.

 

  A B C D E F G
1 Наименование предприятия Центральный автовокзал          
2 Город Курск          
3 Касса № 4          
4              

 

Рис.5. Фрагмент рабочего листа «Реквизиты»

 

Таблица для хранения сведений о льготах и их размерах размещена на рабочем листе «Льготы» и показана на рис.6.

 

  A B C D Е F
1 Дети до 9 лет 50% 0.5 детский    
2 Дети до 16 лет 25% 0.25 детский    
3 Ветераны 50% 0.5 льготный    
4 Инвалиды 70% 0.7 льготный    
5 Военнослужащие 60% 0.6      
6            

 

Рис.6. Фрагмент рабочего листа «Льготы»

 

Примерная форма заполненного бланка билета размещена на рабочем листе “Билет” и показана на Рис.7.

 

  A B C

D

E F G
1   Билет        
2

Центральный автовокзал

     
3 г. Курск  

 

       
4 Касса № 2

 

       
5    

 

       
6

Пункт назначения

Москва

       
7

Время отправления

12:20

       
8

Время в пути

9 час

       
9

Тип

полный

       
10 Место №  

21

       
11 Стоимость  

220 р.

       
12

Дата продажи

22/11/02

       
13

Время продажи

09:44

       
14    

 

       
15    

 

       
                 

 

Рис.7. Фрагмент рабочего листа “Билет”

 

Следующим шагом является создание диалоговой формы. Для этого в Excel выбрать меню Сервис – Макрос – Редактор Visual Basic. Затем в среде Visual Basic выбрать пункт Insert – UserForm (Вставка – Форма). Поместить на форму элементы управления: кнопки, списки, поля ввода и т.п., необходимые для связывания информационных объектов приложения. Общий вид формы показан на рис. 8.

 

Рис.8. Диалоговая форма

 

Для вывода диалоговой формы непосредственно из среды Excel необходимо написать специальный модуль. В меню Insert выбрать пункт Module (Модуль). В открывшемся окне модуля написать:

 

Sub Bilet ()

UserForm1. Show

End Sub

       После закрытия окна модуля и возвращения в среду Excel выбрать пункт Сервис – Макрос – Макросы. В списке открывшегося окна макросов появится строка с именем вновь созданного модуля Bilet. Щелчок мыши по кнопке «Открыть» приведет к появлению диалоговой формы UserForm1.

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

 

Таблица 2

Dim i, j As Integer

i = 2

Do While Расписание.Cells(i, 1) <> ""

Loop

j = 2

Do While Льготы.Cells(j, 1) <> ""

Loop

TextBox10.Text = Date

TextBox11.Text = Time

End Sub

       Данная процедура просматривает и добавляет в раскрывающиеся списки ComboBox1 и ComboBox2 содержимое заполненных ячеек первых столбцов рабочих листов «Льготы» и «Расписание». Заполнение списков прекращается, как только в очередной строке данные отсутствуют. Поскольку первая строка в таблицах – строка заголовков, заполнение списков начинается со второй строки рабочих листов. В текстовые поля TextBox1 и TextBox2 выводятся текущие дата и время.

       При написании процедуры следует обратить особое внимание на соответствие имен объектов в процедуре именам, используемым в проекте. В случае выявления их несоответствия рекомендуется сделать следующее. В окне редактора VB выбрать «Вид» (View) – «Окно проекта» (Project). Из списка объектов выбрать нужный рабочий лист и вывести на экран окно свойств «Вид» (View) – «Окно свойств» (Propety)). Затем ввести нужное имя в строке «Name» окна свойств. 

       Следующий шаг – программирование процедуры события выбора строки из раскрывающегося списка ComboBox_Change. При выборе элемента списка объекта ComboBox в полях TextBox должны появляться данные из связанных с ними столбцов, соответствующие выбранной строке рабочего листа. Поскольку в рассматриваемом примере диалоговое окно располагает двумя объектами ComboBox, то для каждого из них программируется собственная процедура обработки события ComboBoxi_Change. Содержание процедуры, связанной с пунктом назначения приводится ниже.

 

Private Sub ComboBox1_Change()

Dim i As Integer

i = ComboBox1.ListIndex + 2

TextBox1.Text = Расписание.Cells (i, 2)

TextBox2.Text = Расписание.Cells (i, 3)

TextBox3.Text = Расписание.Cells (i, 4)

TextBox4.Text = Расписание.Cells (i, 5)

TextBox5.Text = Расписание.Cells (i, 6)

TextBox5.Text = Расписание.Cells (i, 7

End Sub

 

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

 

Private Sub ComboBox2_Change()

Dim ji As Integer

j = ComboBox2.ListIndex + 2

TextBox7.Text = Льготы. Cells (j, 2)

TextBox8.Text = Льготы. Cells (j, 3)

TextBox9.Text = Льготы. Cells (j, 4)

End Sub

 

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

 

Private Sub TextBox4_Change()

TextBox9.Text = Val(TextBox4.Text) – (Val(TextBox8.Text) / 100) * Val_ (TextBox4.Text)

End Sub

Private Sub TextBox8_Change()

TextBox9.Text = Val(TextBox4.Text) – (Val(TextBox8.Text) / 100) * Val(TextBox4.Text)

End Sub

       Командные кнопки должны обеспечивать работу приложения по следующим сценариям: а) отказ от дальнейших действий с сохранением исходного состояния таблиц и бланка билета (кнопка «Отмена»); б) очистка заполняемых полей бланка билета (кнопка «Бланк»); в) генерация продаваемого билета с одновременным пересчетом количества оставшихся свободных мест и изменением номера места для следующего сеанса (кнопка «ОК»).

       Процедура обработки события нажатия на кнопку «Отмена» имеет вид:

 

Private Sub CommandButton3_Click()

UserForm1. Hide

End Sub

 

       Процедура обработки события нажатия на кнопку «Бланк» выглядит следующим образом:

 

Private Sub CommandButton2_Click()

Билет.Activate

Range("c6: c12; a1:a3").Select

Selection.Clear

UserForm1. Hide

End Sub

       Процедура обработки события CommandButton1_Click выглядит так:

Private Sub CommandButton1_Click()

Else

Билет.Range("c3") = UserForm1.ComboBox1.Text

Билет.Range("C4") = UserForm1.TextBox1.Text

Билет.Range("C5") = UserForm1.TextBox2.Text

Билет.Range("C6") = UserForm1.TextBox3.Text

Билет.Range("C7") = UserForm1.TextBox4.Text

Билет.Range("C8") = UserForm1.TextBox6.Text

Rem Если льгота не выбрана, печатать в соответствующем поле бланка - “Полный”

If ComboBox2.Text = "" Then

Билет.Range("c9") = " Полный "

Else

Билет.Range("c9") = UserForm1.ComboBox2.Text

End If

Билет.Range("C10") = UserForm1.TextBox9.Text

Билет.Range("C11") = UserForm1.TextBox10.Text

Билет.Range("a1") = Реквизиты. Range(“b1”)

Билет.Range("a2") = Реквизиты. Range(“b2”)

Билет.Range("a31") = Реквизиты. Range(“b3”)

Билет.Activate

Loop

Расписание.Cells(k, 6). Value = Расписание. Cells(k, 6). Value - 1

Расписание.Cells(k, 7). Value = Расписание. Cells(k, 7). Value + 1

UserForm1. Hide

End If

End Sub

 

Для ежедневного обновления информации о свободных местах на рабочем листе «Расписание» диалоговая форма дополняется соответствующей кнопкой и программируется процедура, обеспечивающая этот режим:

 

Private Sub CommandButton4_Click()

n = 2

Do While Расписание.Cells(n, 1) <> ""

Расписание.Cells(n, 6).Value = 40

Расписание.Cells(n, 7).Value = 1

n = n + 1

Loop

MsgBox "Обновление произведено"

End Sub

 

       Следующим шагом по разработке приложения является его дополнение файлом справки. Справочная информация вызывается по кнопке «CommandButton5». Щелчок по этой кнопке выводит на экран форму UserForm2, на которой размещен элемент TextBox, используемый для демонстрации содержимого текстового файла спраки в режиме «Только чтение». Процедура вызова справки имеет вид:

Private Sub CommandButton5_Click()

Wrap$ = Chr(13) + Chr(10)

Open "c:\rf.txt" For Input As 1

Do Until EOF(1)

Line Input #1, Lineoftext$

LineFull$ = Lineoftext$ + Wrap$

Alltext$ = Alltext$ & LineFull$

Loop

UserForm2. TextBox1. MultiLine = True

UserForm2. TextBox1. ScrullBurs = 3

UserForm2. TextBox1.Text = Alltext$

Close #1

End Sub

       Строковая переменная Wrap$ служит для маркировки концов строк.

На заключительном этапе добавляется кнопка, автоматического запуска макроса. Для этого следует выполнить следующие действия: в меню «Вид» выбрать строку «Панель инструментов» – «Настройка»; с помощью кнопки «Создать» добавить новую панель инструментов; переключиться в подокно «Команды» и выбрать из списка разделов раздел «Макросы»; перетащить нужную кнопку на добавленную панель; затем щелкнуть по ней правой кнопкой мыши для вызова контекстного меню; выбрать пункт «Назначить макрос»; в открывшемся списке макросов выбрать нужный; в завершение отредактировать значок на командной кнопке, подобрать размер и оформление.

Следует помнить, что добавленная кнопка является элементом интерфейса Excel и при копировании приложения на другой компьютер переноситься не будет.

 

Приложение 1

 

Примеры некоторых типовых программных решений

 

Пример использования инструкции Do…Loop

 

В данном примере показано, как можно использовать инструкции Do...Loop. Внутренний цикл Do...Loop выполняется 10 раз, затем логической переменной присваивается значение False, после чего он преждевременно завершается с помощью инструкции Exit Do. Внешний цикл завершается немедленно после проверки значения логической переменной.

 

Dim Check, Counter

Check = True: Counter = 0     ' Инициализирует переменные.

Do ' Внешний цикл.

Do While Counter < 20     ' Внутренний цикл.

             Counter = Counter + 1      ' Увеличивает счетчик.

             If Counter = 10 Then ' Если условие истинно.

                         Check = False ' Присваивает переменной

                                     ' значение False.

                         Exit Do       ' Завершает внутренний цикл.

             End If

Loop

Loop Until Check = False ' Немедленно завершает внешний цикл.

Пример использования инструкции For…Next

 

В рассматриваемом примере инструкция For...Next используется для создания строки, содержащей 10 наборов по 10 цифр (от 0 до 9); каждый набор отделяется от следующего одним пробелом. Внешний цикл использует переменную-счетчик, которая уменьшается на единицу при каждом выполнении цикла.

 

Dim Words, Chars, MyString

For Words = 10 To 1 Step -1 ' Цикл выполняется 10 раз.

For Chars = 0 To 9 ' Цикл выполняется 10 раз

             MyString = MyString & Chars     ' Добавляет цифру в конец строки.

Next Chars ' Увеличивает счетчик

MyString = MyString & " " ' Добавляет пробел.

Next Words

Пример использования инстркуции If…Then…Else

 

В данном примере показано использование как блоковой, так и однострочной форм инструкции If...Then...Else, а также проиллюстрировано использование инструкции If TypeOf...Then...Else.

 

Else

Digits = 3

End If

 Использует однострочную форму для присвоения значения.

If Digits = 1 Then MyString = "Один" Else MyString = "Больше 1".

Использует конструкцию If TypeOf для определения, является ли элемент управления, переданный процедуре, текстовым полем.

End Sub

Пример использования инструкции Public

 

В данном примере инструкция Public используется на уровне модуля в общем разделе стандартного модуля для явного объявления переменных общими. Общие переменные доступны всем процедурам во всех модулях во всех приложениях (если инструкция Option Private Module отключена).

Dim AnyString, MyStr

AnyString = "Всем привет"   ' Задает строку.

MyStr = Left(AnyString, 1)    ' Возвращает " В ".

MyStr = Left(AnyString, 6)    ' Возвращает " Всем п ".

MyStr = Left(AnyString, 20)  ' Возвращает " Всем привет ".

В данном примере функция Len используется для определения числа символов в строке или числа байт, необходимого для размещения переменной. Если блок Type...End Type, описывающий тип CustomerRecord, помещен в модуль класса, то перед ним необходимо добавить ключевое слово Private. В стандартном модуле инструкция Type может быть общей (Public).

End Type

Dim MyString, MyLen

MyString = "Всем привет"    ' Инициализирует переменную.

MyLen = Len(MyInt)  ' Возвращает 2.

MyLen = Len(Customer) ' Возвращает 42.

MyLen = Len(MyString) ' Возвращает 11.

MyLen = Len(MyCur) ' Возвращает 8.

В данном примере функция Mid используется для извлечения указанного числа символов из строки.

Dim AnyString, MyStr

AnyString = "Всем привет"   ' Инициализирует строку.

MyStr = Right(AnyString, 1)  ' Возвращает " т "

MyStr = Right(AnyString, 7)  ' Возвращает " привет".

MyStr = Right(AnyString, 20) ' Возвращает "Всем привет".

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

 

 

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

 

Рис.9. Диалоговая форма

 

Процедуры обработки событий, обеспечивающих работу программы, имеют вид:

Private Sub CheckBox1_Change()

If UserForm1.TextBox1.Font.Bold = False Then

UserForm1.TextBox1.Font.Bold = True

Else

UserForm1.TextBox1.Font.Bold = False

End If

End Sub

Private Sub CheckBox2_Change()

If UserForm1.TextBox1.Font.Italic = False Then

UserForm1.TextBox1.Font.Italic = True

Else

UserForm1.TextBox1.Font.Italic = False

End If

End Sub

Private Sub UserForm_Activate()

UserForm1.TextBox1.Text = "Hello"

UserForm1.CheckBox1.Value = False

UserForm1.CheckBox2.Value = False

End Sub

 

Пример использования кнопок OptionButton.

 

В данном примере показано, как с помощью кнопок OptionButton программируется переключатель размера шрифта в текстовом поле. Форма, соответствующая данному примеру, приведена на
 

рис. 10.

 

Рис.10. Общий вид формы

 

В процедуре UserForm Activate назначается положение переключателя при запуске формы, а в процедуре OptionButton Change – реакция программы на изменение положения переключателя:

 

Private Sub UserForm_Activate()

UserForm2.TextBox1.Text = " Привет "

UserForm2.OptionButton1.Value = True

UserForm2.OptionButton2.Value = False

End Sub

Private Sub OptionButton1_Change()

If UserForm2.OptionButton1 = True Then

UserForm2.TextBox1.Font.Size = 10

Else

UserForm2.TextBox1.Font.Size = 14

End If

End Sub

 

Пример программы, использующей элемент управления ListBox (Список)

 



Поделиться:


Читайте также:




Последнее изменение этой страницы: 2021-06-14; просмотров: 116; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.217.182.45 (0.277 с.)