Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Автоматизация Excel-приложенийСтр 1 из 10Следующая ⇒
Кафедра информатики и ТСО Автоматизация 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
Массивы любых типов данных требуют 20 байт памяти плюс 4 байта на каждую размерность массива плюс число байт, требуемых для хранения данных. Объем памяти, требуемый для сохранения данных, рассчитывается как произведение числа элементов на размер элемента. Например, данные в одномерном массиве, который содержит четыре элемента типа Integer, требующих по 2 байта на элемент, занимают 8 байт. Вместе с 20 байтами на массив и 4 байтами на размерность общий требуемый объем составляет 32 байта. Объектом (при компиляции) следует указать ссылку на объект в переменной, описанной с конкретным именем класса.
V. Пример создания приложения
Рассмотрим последовательность и содержание операций при создании приложения, автоматизирующего работу билетной кассы. Разрабатываемое приложение предназначено для автоматизации рабочего места оператора-кассира по продаже билетов на автобус междугородного сообщения. Приложение должно хранить информацию о маршрутах, времени отправления и времени в пути, тарифах, льготах и типе автобуса, а также наличии свободных мест; формировать билет по выбранному маршруту, с расчетом его цены, с учетом имеющейся льготы; вести оперативный учет свободных мест; обеспечивать простую перенастройку реквизитов предприятия-оператора. Поставленные в общем виде требования должны быть уточнены и сформулированы в виде задач:
1) хранение информации о маршрутах, времени отправления, времени в пути, тарифах, льготах, типах автобусов и свободных местах с возможностью ее оперативного обновления (объем хранимой информации ограничивается текущими сутками); 2) хранение информации о реквизитах предприятия-оператора; 3) хранение бланка билета; 4) автоматизированное формирование билета в соответствии с выбранным маршрутом, имеющейся льготой, временем отправления с расчетом цены и только при наличии свободных мест; 5) распечатывание билета или пустого бланка билета; 6) автоматическое обновление оставшихся свободных мест в процессе работы приложения; 7) автоматизированная реинициализация системы в начале рабочего дня. Предварительный анализ задач, решаемых приложением, позволяет выделить две группы данных: условно-постоянные данные и оперативные данные. К первой группе относится информация о реквизитах места установки приложения и об имеющихся льготах. К оперативным данным относятся сведения о маршрутах движения, тарифах, наличии свободных мест. Итак, первая группа включает полное название предприятия, номер кассы, список наименований льгот и их размер. Вторая группа включает номер маршрута, пункт назначения, время отправления, стоимость проезда, расстояние, время в пути, количество свободных мест (для простоты, возможность продажи билетов до промежуточных пунктов не предусматривается). Помимо хранимых данных для формирования билета в диалоговом режиме следует ввести фамилию пассажира и наименование документа, подтверждающего льготу. Совместный анализ задач и используемых данных позволяет представить структуру разрабатываемого приложения и представить ее в виде, показанном на рис. 3.
Рис.3. Блок-схема информационной модели приложения
После уточнения информационной модели создаются макеты таблиц для хранения данных и форма билета. Таблица, предназначенная для хранения данных о маршрутах, помещается на рабочем листе «Расписание». Макет этой таблицы приведен на рис. 4.
Рис.4. Фрагмент таблицы «Расписание»
Таблица для хранения реквизитов предприятия размещается на рабочем листе «Реквизиты» и выглядит, как показано на рис. 5.
Рис.5. Фрагмент рабочего листа «Реквизиты»
Таблица для хранения сведений о льготах и их размерах размещена на рабочем листе «Льготы» и показана на рис.6.
Рис.6. Фрагмент рабочего листа «Льготы»
Примерная форма заполненного бланка билета размещена на рабочем листе “Билет” и показана на Рис.7.
Москва |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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
Рис.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. Общий вид формы
В процедуре 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 с.)