Курсовая работа "Использования VBA в офисных приложениях"
...
Скачать:
Вложение | Размер |
---|---|
kursovaya_rabota_na_temu_ispolzovanie_vba_v_ofisnyh_prilozheniyah.doc | 846.5 КБ |
Предварительный просмотр:
Министерство Образования и Науки Российской Федерации
Федеральное Агентство по Образованию
Елецкий Государственный Университет им. И.А. Бунина
Физико-математический факультет
Кафедра вычислительной математики и информатики
Курсовая работа
на тему:
«Использование языка Visual Basic for Application в офисных приложениях».
Выполнил: Зверева Д.А.
Научный руководитель:
Кандидат физико-математических наук
Доцент - ________________
2010г.
Оглавление.
1. Введение……………………………………………………………………………..…..4
2. Из истории создания Visual Basic for Application……………………………..……….4
3. Основные понятия языка VBA Excel……………………………………………………7
- Общее понятие о языке VBA;
- Объекты VBA;
- Свойства, методы и события;
- Элементы языка VBA;
- Структура редактора VBA.
- Панели инструментов
4. Создание макросов и их применение в Excel……………………………………….…16
- Понятие макроса.
- Запись простых макросов.
- Выполнение макросов.
- Редактирование макросов.
- Назначение макроса графическим изображениям.
- Удаление макросов из списка макросов.
- Ограниченность макросов.
5. Пользовательские формы……………………………………………………………….22
- Создание экранных форм.
- Панель элементов управления.
- Свойства, методы и события объекта UserForm.
- Пользовательская форма UserForm
6. Рисунки в пользовательских формах……………………………………………..……28
- Свойства объекта Image.
- Отладка программ.
7. Стандартные диалоговые окна………………………………………………………...31
- Окно сообщений MsgBox
- Окно ввода InputBox
- Объединение текстовых строк.
8. VBA в приложении Word ………………………………………………………….…..33
- Объекты.
- Макросы.
9. VBA в приложении Power Point………………………………………………………..39
- Применение пользовательских форм.
10. Вывод……………………………………………………………………………...……46
11. Список литературы…………………………………………………………………….48
1. Введение.
В современном обществе компьютер играет огромную роль, уже трудно представить труд ученых, инженеров, экономистов, бухгалтеров без использования вычислительной техники. Но компьютер сам по себе не способен даже на простые операции, поэтому для того чтобы человек мог использовать компьютер необходимо так называемое программное обеспечение. Программа руководит ресурсами компьютера и предоставляет их в распоряжение пользователя. Существует огромное количество разнообразных по своим функциям и возможностям программ, но среди них выделяют два основных типа: системное и прикладное программное обеспечение. К системному программному обеспечению относят операционную систему и все программы, предназначенные для создания рабочей среды для прикладных программ, которые в свою очередь выполняют ту самую, необходимую пользователю, работу. В этой курсовой работе я остановлюсь на обзоре операционной системы Windows, в частности офисного пакета Microsoft Office и использовании языка Visual Basic for Application в нем.
2. Из истории создания Visual Basic for Application.
Язык Basic был разработан профессорами Дартмутского колледжа Дж.Кемени и Т.Курцом в 1965 году как средство обучения и работы непрофессиональных программистов. Его назначение определено в самом названии, которое является аббревиатурой слов Beginner's All- purpose Symbolic Instruction Code (многоцелевой язык символических инструкций для начинающих) и при этом в дословном переводе означает "базовый". Однако парадокс заключается в том, что, будучи действительно весьма простым средством программирования, совершенно непригодным в те времена для решения серьезных задач, Basic представлял собой качественно новую технологию создания программ в режиме интерактивного диалога между разработчиком и компьютером. То есть представлял собой прообраз современных систем программирования. Другое дело, что решение подобной задачи на технике тех лет было возможно только за счет максимального упрощения языка программирования и использования транслятора типа "интерпретатор".
В силу этих же причин Basic в основном применялся на мини- и микроЭВМ, которые в 70-е годы имели оперативную память, объем которой кажется сегодня просто нереальным (4-32 тысяч байт). Резкое развитие систем на основе Basic началось с появлением в начале 80-х годов персональных компьютеров, производительность и популярность которых растет вот уже двадцать лет невиданными темпами.
В начале 90-х годов Microsoft начала активную борьбу за продвижение в массы своей новой операционной системы Windows (против своей же, но более уже устаревающей MS-DOS). Но, как известно, пользователи работают не с ОС, а с программами, которые работают в ее среде. Поэтому скорость смены платформы в основном определяется темпами появления соответствующих прикладных программ.
Однако смена операционных систем представляет серьезную проблему и для программистов, так как им нужно было осваивать новую технологию разработки программ. В тот момент бытующим (и в значительной степени, совершенно справедливым) мнением было то, что Windows предъявляет более высокие требования к квалификации программиста.
В 1991 году под лозунгом "теперь и начинающие программисты могут легко создавать приложения для Windows" появилась первая версия нового инструментального средства Microsoft Visual Basic. В тот момент Microsoft достаточно скромно оценивала возможности этой системы, ориентируя ее, прежде всего, на категорию начинающих и непрофессиональных программистов. Основной задачей тогда было выпустить на рынок простой и удобный инструмент разработки в тогда еще довольно новой среде Windows, программирование в которой представляло проблему и для опытных специалистов.
Действительно, VB 1.0 в тот момент был больше похож не на рабочий инструмент, а на действующий макет будущей среды разработки. Его принципиальное новшество заключалось в реализации идей событийно-управляемого и визуального программирования в среде Windows, которые весьма радикально отличались от классических схем разработки программ. По общему признанию VB стал родоначальником нового поколения инструментов, называемых сегодня средствами быстрой разработки программ (Rapid Application Development, RAD). Сегодня эта идеология считает привычной, но тогда она казалась совершенно необычной и создавала серьезные проблемы (в том числе чисто психологического плана) для программистов "старых времен".
Тем не менее, число VB-пользователей росло, причем во многом за счет огромной популярности ее предшественника — QuickBasic. При этом VB быстро "мужал", усиливаясь за счет, как развития среды программирования, так и включения профессиональных элементов языка и проблемно-ориентированных средств. И к моменту выпуска в 1995 году VB 4.0 эта система была уже признанным и одним из самых распространенных инструментов создания широкого класса приложений. В настоящее время используется версия VB 6.0 и 7.0.
В начале 90-х годов наметилась отчетливая тенденция включение в приложения, предназначенные для конечного пользователя, средства внутреннего программирования, которые должны были решать задачи настройки и адаптации этих пакетов для конкретных условий их применения.
В конце 1993 г. Microsoft объявила о намерении создать на основе VB новую универсальную систему программирования для прикладных программ, которая получила название Visual Basic for Applications (VB для приложений). Естественно, реализацию этого проекта она начала с собственных офисных пакетов.
Первый вариант VBA 1.0 появился в составе MS Office 4.0, но лишь в программах Excel 4.0 и Project 6.0. В других же приложениях - Word 6.0 и Access 2.0 - были собственные варианты Basic. Более того, VBA 1.0 довольно сильно отличался (причем имея ряд существенных преимуществ) от используемой тогда универсальной системы VB 3.0.
Качественный перелом наступил в конце 1996 года с выпуском MS Office 97, в котором была реализована единая среда программирования VBA 5.0, включенная в программы Word, Excel и PowerPoint. Более того, VBA 5.0 использовала тот же самый языковый механизм и среду разработки, что и универсальная система VB 5.0. В состав выпущенного MS Office 2000 вошла соответственно версия VBA 6.0, которая используется в шести программах - Word, Excel, PowerPoint, Access, Outlook, Frontpage.
3. Основные понятия языка VBA Excel
VBA относится к языкам объектно-ориентированного программирования, поэтому разговор о нем естественно начать с понятия объекта.
Объекты
Объект - основной элемент VBA Excel. В VBA объектами являются рабочая книга, рабочий лист и его составляющие.
Примеры объектов:
Sheet - лист Excel;
Cell - ячейка;
Range - диапазон ячеек;
Application - приложение;
UserForm - пользовательская форма.
Доступ к объекту возможен через его методы и свойства.
Методы
Над объектами можно совершать различные действия. Действия, совершаемые над объектами, называются методами. Например, ячейку можно очистить (Clear), приложение закрыть (Quit), пользовательскую форму показать (Show) или скрыть (Hide).
Название метода отделяется от названия объекта точкой: объект.метод.
Примеры использования методов:
Range("B2:E2").Select - выбрать диапазон ячеек B2:E2;
Range("C1:C5").Clear - очистить диапазон ячеек C1:C5;
UserForm2.Hide - скрыть форму № 2;
UserForm5.Show - показать форму № 5;
Application.Quit - выйти из приложения.
Свойства
Свойствами описываются характеристики объектов. Например, размер и цвет шрифта, положение формы на экране или состояние объекта (доступность, видимость). Чтобы изменить характеристику объекта, надо просто изменить значение свойства, т.е. присвоить ему определенные значения.
Синтаксис установки значения свойства:
Объект.Свойство = ЗначениеСвойства,
- где Объект обозначает имя объекта, Свойство - имя свойства, которому присваивается значение.
Имя объекта отделяется от имени свойства точкой.
Примеры свойств:
Range("D1").Value = 2005 - поместить в ячейку D1 значение 2005.
Range("C1:C10").Text = "Информатика" - поместить в диапазон ячеек C1:C10 текст Информатика.
Range("B2").Font.Size = 14 - в ячейке B2 установить размер шрифта 14.
Методы и свойства некоторых объектов VBA
Объект: Application (приложение).
Метод Свойство: Caption (имя главного окна).
Примеры. Application.Quit - закрыть приложение; Application.Caption = "Протокол" - установить в качестве заголовка окна приложения “Протокол”.
Объект: Sheet (лист), ActiveSheet (активный/выбранный лист).
Семейство: Sheets (листы).
Методы: Select (выбрать); ShowDataForm (показать встроенную форму).
Примеры: Sheets("Меню").Select - выбрать лист “Меню”; ActiveSheet.ShowDataForm - на активном в настоящий момент листе показать встроенную форму.
Объект: Range (диапазон).
Методы: Select (выделить); Clear (очистить).
Свойство: Name (имя).
Примеры. Sheets("Протокол").Range("В4:В10").Name = "Класс" - диапазону В4:В10, расположенному на листе “Протокол”, присвоить имя “Класс”; Sheets("Протокол").Range("В4:В10").Select - выделить диапазон В4:В10 на листе “Протокол”.
Объект, Семейство: UserForm (пользовательская форма).
Методы: Show (показать); Hide (скрыть).
Свойство: Caption (текст, отображаемый в строке заголовка).
Примеры. UserForm1.Show - показать пользовательскую форму номер один;
UserForm1.Hide - скрыть пользовательскую форму номер один;
UserForm1.Caption - "Информатика"- вывести заданный в кавычках текст в строке заголовка.
Объект, Семейство: TextBox (Поле ввода).
Свойство: Text (содержимое).
Примеры. UserForm1.TextBox1.Text = Date - в поле ввода номер один в пользовательской форме номер один записать текущую дату; UserForm1.TextBox2.Text = " " - очистить поле ввода номер два в пользовательской форме номер один.
Объект, Семейство: ComboBox (поле со списком).
: Quit (закрыть).
Метод: AddItem (добавить элемент в список).
Свойства: Text (содержимое); Rowsource (источник строк для списка).
Примеры. UserForm1.ComboBox2.Text = " " - очистить значение поля для поля ввода со списком номер два в пользовательской форме номер один; UserForm2.ComboBox1.Rowsource="В2:В10" - источником строк для поля один со списком в пользовательской форме два установить данные из диапазона В2:В10;
UserForm1.ComboBox1.AddItem ("Факс") - добавить к списку элемент, заключенный в кавычки.
Объект, Семейство: OptionButton.
Свойства: Value (значение); Сaption (надпись).
Примеры. UserForm3.OptionButton1.Value = True - выбрать переключатель номер один в пользовательской форме номер три; UserForm3.OptionButton1.Capture = "Успеваемость" - установить надпись “Успеваемость” рядом с переключателем в пользовательской форме номер три.
Объект, Семейство: CheckBox.
Свойства: Value (значение); Сaption (надпись).
Примеры. UserForm2.CheckBox1.Value = True - установить флажок номер один в пользовательской форме номер два; UserForm3.CheckBox1.Value = False - сбросить флажок номер один в пользовательской форме номер три; UserForm4.CheckBox1.Capture="Класс" - установить надпись “Класс” рядом с флажком в пользовательской форме номер четыре.
События
Событие представляет собой действие, распознаваемое объектом (например, щелчок мышью или нажатие клавиши, перемещение мыши или выход из программы), для которого можно запрограммировать отклик, т.е. реакцию объекта на произошедшее событие. В языке VBA для каждого объекта определен набор стандартных событий. Стандартное событие для объекта “кнопка” (CommandButton) - щелчок мышью (Click). Если пользователь нажимает на кнопку, то это событие. На это событие должен быть отклик, т.е. выполнение какой-либо программы. Такая программа называется процедурой обработки событий и имеет стандартное имя. Если такой отклик не создан (не написана соответствующая программа), то система никак не будет реагировать на это событие.
Элементы языка VBA
Объекты - основные элементы языка VBA, но не единственные. К другим элементам относятся: константы, переменные, массивы, выражения, встроенные функции, встроенные диалоговые окна, операторы.
Константы - данные, не изменяющиеся в процессе решения задачи. Константы бывают двух видов: числовые и символьные.
Числовые константы - это целые либо вещественные числа.
Символьные константы - текст, заключенный в кавычки. Пример числовой константы - 5,8 (использование запятой или точки зависит от настроек операционной системы). Пример символьной константы - ООО “Темп”.
Переменные - данные, значения которых меняются в ходе выполнения программы. Для переменной задается имя и тип.
Имя переменной должно начинаться с буквы и может содержать любую комбинацию букв, цифр и символов за исключением точек, пробелов и следующих символов: “!”, “%”, “&”, “$”, “#”, “@”. Длина имени не должна превышать 255 символов. Не следует использовать имена, совпадающие с ключевыми словами VBA и именами встроенных функций и процедур. Основные типы переменных, их размеры и диапазоны принимаемых значений приведены в таблице ниже.
Тип | Размер (байт) | Диапазон значений |
Byte (байт) | 1 | От 0 до 255 |
Boolean (логический) | 2 | True или False |
Integer (целое число) | 2 | От 32768 до 32767 |
Long (длинное, целое число) | 4 | От 2 147 483 648 до 2 147 483 647 |
Single (число с плавающей запятой, обычной точности) | 4 | Для отрицательных значений от -3,4Е38 до -1,4Е45, для положительных – от 1,4Е45 до 3,4Е38 |
Double (число с плавающей запятой двойной точности) | 8 | Для отрицательных: от -1,79Е308 до -4,94Е-342 Для положительных: от 4,94Е-324 до 1,79Е308 |
Currency (денежный) | 8 | От 922 337 203 685 477, 5808 до 922 337 203 685 477,5807 |
Date (дата и время) | 8 | От 1 января 100г. до 31 декабря 9999г. |
String (строка) | 10+ длина строки | От 0 до 2*10^9 |
Variant (вариант) | Зависит от содержимого переменной |
Переменные типа Variant могут хранить все, что в них поместят. Их тип изменяется в зависимости от последнего присвоения. В программах переменные описываются с помощью специального оператора Dim.
Массив - упорядоченная совокупность однотипных переменных. Массивы имеют имя и размерность. Имя массива подбирается с учетом тех же правил, что и имена переменных. Размерность - это количество элементов (переменных), составляющих массив. Из констант, переменных и встроенных функций (они рассмотрены далее) с помощью скобок и знаков арифметических операций (“+”, “-”, “*”, “/”, “^”) можно составлять выражения. Частным случаем выражения может быть просто одиночный элемент, т.е. константа, переменная или обращение к встроенной функции.
Примеры выражений:
Z
(a+b)^2
45
sin(y)
В VBA имеется большой набор встроенных функций, которые разделяют на категории. Примеры категорий:
- математические функции;
- функции преобразования форматов;
- логические функции;
- функции времени и даты.
- функции проверки типов;
Некоторые из функций приведены в следующей таблице.
Таблица «Функции VBA» |
Функция | Выражение |
Наименование функции |
Abs(x) | Модуль (абсолютная величина числа) |
Cos(x) | Косинус |
Exp(x) | Экспонента, т.е. возведение натурального логарифма в указанную степень |
Log(x) | Натуральный логарифм |
Sin(x) | Синус |
Sqr(x) | Квадратный корень |
Логические функции |
x1 END x2 x1 OR x2 | True, если х1 и х2 равны True; False, если либо х1, либо х2 равно False True, если хотя бы один из х1, х2 равен True; False, если х1 и х2 равны False |
Функции проверки типов |
IsNumeric (переменная) | True, если переменная – число, False, если переменная – не число |
IsNull (переменная) | True, если переменная является пустым значением (Null); False, если переменная непустое число |
Функции преобразования форматов |
CInt(x) | х - Преобразуется в целое |
CSng(x) | х – преобразуется в число с плавающей точкой обычной точности |
CStr(x) | х – преобразуется в строку |
Функции времени и даты |
Date | Текущая дата |
Now | Текущая дата и время |
Кроме перечисленных функций, объект Applications позволяет вызвать более 400 встроенных функций рабочего листа при помощи конструкции вида:
Application.Функция Рабочего Листа(Аргументы).
Примеры:
- Application.Sum(Sheets("Проверка").Range("A1:B20")) - суммируются значения из ячеек диапазона A1:B20, расположенного на листе “Проверка”;
- Application.CountA(Sheets("Ученики").Range("A:A")) - подсчитывается количество непустых ячеек в столбце А на листе “Ученики”.
Структура редактора VBA
Редактор VBA активизируется командой Сервис ® Макрос ® Редактор Visual Basic. После выполнения команд мы попадаем в редактор VBA. Возвратиться из редактора VBA в рабочую книгу можно нажатием кнопки Вид (View) ® Microsoft Excel . Рассмотрим основные компоненты окна редактора. Внешний вид окна редактора представлен на рисунке. Окно редактора состоит из следующих компонентов: панели инструментов; окно проекта; окно свойств; окно редактирования кода; меню.
Панели инструментов
Стандартная панель инструментов редактора Visual Basic содержит кнопки, предназначенные для выполнения наиболее часто используемых команд.
Панель разбита на отдельные сегменты по типу выполняемых команд.
Кнопки первого сегмента:
Кнопки для возврата в Excel, вставки элементов (модулей, процедур, экранных форм) в проект и сохранение рабочей книги.
Кнопки второго сегмента:
Кнопки для вырезания, копирования, вставки и поиска фрагментов кода.
Кнопки третьего сегмента:
Кнопки отмены действий и повторения отмененных действий.
Кнопки четвертого сегмента:
Кнопки для выполнения, остановки и прекращения выполнения процедуры, а также смены режима отображения экранной формы.
Кнопки пятого сегмента:
Кнопки, управляющие отображением окон проектов, свойств и просмотра объектов, а также панели инструментов.
Последняя кнопка - это обычная кнопка вызова справочной системы.
Окно проекта
Окно проекта активизируется выбором команды Вид ® Окно проекта (View, Project window) или нажатием кнопки Окно проекта . В окне проекта представлена иерархическая структура файлов, форм и модулей текущего проекта.
Окно свойств
В окне свойств перечисляются основные значения свойств выбранного объекта. Используя это окно, можно просматривать свойства и изменить их значения. Для просмотра свойств выбранного объекта надо выполнить команду Вид ® Окно свойств (Properties Windows) или нажатием кнопки .
Окно свойств состоит из двух составных частей: верхней и рабочей. В верхней части окна располагается раскрывающийся список, из которого можно выбрать любой элемент управления текущей формы или саму форму. Рабочая часть состоит из двух вкладок, в которых свойства располагаются По алфавиту (Alphabetic) и По категориям (Categorized).
Окно для просмотра объектов (Object Browser)
Окно Просмотр объектов (Object Browser) вызывается командой Вид ® Просмотр объектов (View, Object Browser) или нажатием кнопки . В этом окне можно просматривать все объекты проекта. Здесь вы найдете все свойства, методы и события, связанные с любым объектом.
Окно Просмотр объектов состоит из трех основных частей:
1. Раскрывающегося списка Проект/Библиотека в верхнем левом углу экрана. Например, библиотеки объектов Excel, VBA, Office и VBAProject (объекты пользовательского проекта).
2. Списка Классы. Выводятся все классы выбранной библиотеки.
3. Списка Компоненты (Members). Выводятся все компоненты выбранного класса.
Это окно предоставляет доступ ко всем объектам, свойствам, методам и событиям.
4. Создание макросов и их применение в Excel
Понятие макроса
Прежде чем приступить к написанию программ на VBA, следует воспользоваться простой возможностью создания программы (макроса) на языке VBA с использованием MacroRecorder.
MacroRecorder — это стандартное средство записи макросов в Excel, посредством которого можно записывать последовательность действий пользователя и получать соответствующий код (программу) на VBA. Программа, созданная с помощью MacroRecorder, называется макросом.
Основное назначение макросов — автоматизация работы пользователя. Кроме этого, созданный код макроса может служить основой для дальнейших разработок.
При записи макроса запоминаются все действия пользователя, будь то нажатие клавиши или выбор определенной команды меню, которые автоматически преобразуются в программный код на языке VBA. Каждому макросу дается имя, а для быстрого запуска макроса можно создать или присвоить ему “горячую” клавишу (клавишу, по нажатию на которую будет производиться запуск макроса). После запуска макрос будет автоматически выполнен тем приложением, в котором он создан и запущен. При выполнении макроса компьютер воспроизведет все действия пользователя. Макрос — это именованная последовательность заданных пользователем команд и действий, хранящаяся в форме программы на языке VBA.
Запись макросов в приложении Excel
Для работы с макросами в приложении Excel имеется специальная панель.
Рис. Панель для работы с макросами
Для вызова этой панели необходимо выполнить последовательно команды меню: “Вид | Панель инструментов | Visual Basic”.
Для записи макроса необходимо:
1. Нажать на кнопку “Запись макроса” на панели Visual Basic.
2. В диалоговом окне “Запись макроса” присвоить имя макросу. (В имени макроса первым символом должна быть буква, не допускается использование пробелов.)
3. Выполнить действия, которые нужно записать.
4. Нажать кнопку “Остановить запись”.
Пример:
Рассмотрим процедуру записи последовательности действий на следующем примере: определим максимальное значение в выделенном диапазоне ячеек.
В таблице представлена информация о самых ценных алмазах в мире. Нам требуется создать макрос для нахождения алмаза с максимальной массой в граммах.
Это действие в Excel можно выполнить с помощью стандартной функции МАКС, но мы продемонстрируем на этом примере, как сохранить последовательность действий пользователя и на их основе создать макрос.
Выполним следующие действия:
1. Открываем новую книгу.
2. Создаем таблицу по приведенному образцу.
3. В ячейке D10 наберите “Максимальная масса в граммах”. Курсор после набора текста может находиться в любой ячейке, кроме ячейки, в которой мы хотим получить результат. На панели Visual Basic нажмем на кнопку “Запись макроса”. Появится диалоговое окно “Запись макроса”:
A | B | C | D | E |
1 | Название | Страна происхождения | Когда найден | Масса в каратах | Масса в граммах |
2 | Великий Могол | Индия | XVII век | 787,0 | 157,40 |
3 | Джонкер | Южная Африка | 1934 | 726,0 | 145,20 |
4 | Звезда Сьерра-Леоне | Западная Африка | 1972 | 969,9 | 193,78 |
5 | Куллинан | Южная Африка | 1905 | 3106,0 | 621,20 |
6 | Президент Варгас | Бразилия | 1938 | 726,6 | 145,32 |
7 | Река Уойе | Западная Африка | 1945 | 770,0 | 154,00 |
8 | Эксцельсиор | Южная Африка | 1893 | 971,5 | 194,30 |
Рис. Окно “Запись макроса”
Введем вместо названия “Макрос1” название макроса “Алмаз” и нажмем “ОК”. На экране появится панель инструментов “Остановить запись”. Теперь все производимые нами действия будут записываться до тех пор, пока не будет нажата эта кнопка. Главное не выполнять никаких лишних действий. Все наши действия фиксируются и записываются.
Установим курсор в ячейку E10. В этой ячейке должен появиться результат.
4. Выполним команду “Вставка | Функция”. Появится диалоговое окно “Мастер функций”. В окне “Категории функций” выберем “Статистические”. Затем выберите функцию МАКС. Появится диалоговое окно, в первой строке которого необходимо указать диапазон, в котором мы будем искать максимальное значение, — E2:E9. Нажмем “ОК”.
5. Щелкнем на кнопке “Остановить запись” на панели Visual Basic. Запись макроса завершена.
Выполнение макросов
При выполнении макроса Excel повторяет те же действия, которые пользователь выполняет в процессе его создания. Продолжим работу с созданным макросом.
Чтобы проверить, как работает созданный нами макрос, прежде всего надо удалить из ячейки E10 полученный результат.
Рис. Диалоговое окно функции МАКС
Затем:
1. Установим курсор в любую ячейку листа.
2. Выполните команду “Сервис | Макрос | Макросы”. Появится диалоговое окно «Макрос»
Рис. Диалоговое окно “Макрос”
3. Выделим макрос “Алмаз” и щелкнем по кнопке “Выполнить”. В ячейке E10 появится результат.
Редактирование макросов
Во время записи макроса Excel запоминает наши действия и преобразует их в код VBA. Можно просмотреть полученный код и отредактировать его, если в этом есть необходимость. Для просмотра созданного макроса выполните команду “Сервис | Макрос | Макросы”. Появится уже знакомое диалоговое окно “Макрос”.
Выделим макрос “Алмаз” и щелкнем по кнопке “Изменить”. Откроется окно редактора.
Рис. Использование редактора Visual Basic для просмотра и редактирования кода VBA
При записи макроса выполнялись всего два действия. Сначала мы установили курсор в ячейку E10. На языке VBA этому действию соответствует строка:
Range("E10").Select
Затем мы вызвали функцию МАКС и в качестве аргумента указали диапазон ячеек E2:E9:
ActiveCell.FormulaR1C1 = "=MAX(R[-8]C:R[-1]C)"
Полученный код можно редактировать непосредственно в редакторе Visual Basic. Изменим размер шрифта в ячейке E10 на 16:
Range("E10").Font.Size = 16
Можно также изменить цвет шрифта. Например, изменим цвет текста в ячейке на красный:
Range("E10").Font.ColorIndex = 3.
Значения, которые может принять свойство Font.ColorIndex, изменяются от 1 до 56.
После внесенных изменений текст макроса стал следующим:
Sub Алмаз()
' Алмаз Макрос
Range("E10").Select
ActiveCell.FormulaR1C1 = "=MAX(R[-8]C:R[-1]C)"
Range("E10").Font.Size = 16
Range("E10").Font.ColorIndex = 3
End Sub
Закрываем окно редактора, вернемся на лист Excel, удалим содержимое ячейки E10 и запустим макрос на выполнение.
Назначение макроса графическим изображениям
Разрабатывая приложение, надо думать о том, чтобы создать легкий и удобный интерфейс для выполнения задач автоматизации. Запуск макросов на выполнение посредством команд меню или кнопок на панели Visual Basic — не слишком удобный механизм для простых пользователей.
Для запуска макроса можно использовать любой элемент, находящийся на рабочем листе. Например, можно использовать для запуска любое графическое изображение. Рассмотрим соответствующий пример.
Используя панель “Рисование”, нарисуем на листе любую автофигуру. Щелкнем правой кнопкой мыши на изображении и в открывшемся контекстном меню выберем команду “Назначить макрос”. Отобразится диалоговое окно “Назначить макрос объекту”. Затем необходимо выбрать макрос “Алмаз” и щелкнуть вне графического изображения, чтобы снять выделение с объекта.
Теперь макрос “Алмаз” можно запустить посредством щелчка на автофигуре.
Рис. Автофигура и кнопка для запуска макроса
Запустить макрос на выполнение можно и другим способом, использовав командную кнопку. Вставить командую кнопку непосредственно на рабочий лист Excel можно с помощью панели инструментов “Формы”. Затем необходимо назначить ей наш макрос.
Удаление макросов из списка макросов
Для того чтобы удалить макрос, надо:
1. Выполнить команду “Сервис | Макрос | Макросы”. Появится уже знакомое диалоговое окно.
2. Выделить макрос, подлежащий удалению, и щелкнуть по кнопке “Удалить”.
3. Подтвердить выполнение операции в специальном окне, которое появится.
Ограниченность макросов
Множество операций Excel можно автоматизировать посредством макросов. Но макросы имеют и ограничения. С помощью макросов нельзя выполнить различные действия в зависимости от содержимого ячейки, нельзя вызвать некоторые диалоговые окна Excel, например, сохранить документ, нельзя отобразить и использовать пользовательские формы ввода данных.
Эти ограничения приводят к необходимости создания программ на VBA.
5. Пользовательские формы
Объектно-ориентированное программирование позволяет создавать графический интерфейс разрабатываемых приложений на основе использования управляющих элементов. Элементы управления являются объектами. Поэтому, как любые объекты, они обладают свойствами, методами и могут откликаться на события. Элементы управления можно вставлять как в рабочие листы, так и в экранные формы.
Экранные формы (их также называют пользовательскими формами, от англ. UserForm) — это окна (обычного вида либо диалоговые), являющиеся частью интерфейса приложения.
Работа с пользовательской формой состоит из нескольких этапов:
Открыть или создать файл для работы;
Перейти в редактор Visual Basic;
Создать пользовательскую форму;
Применить к созданной форме свойства;
Создать в форме элементы управления;
Написать процедуры обработки событий.
Панель элементов управления
При создании экранной формы автоматически отображается “Панель инструментов”. “Панель инструментов” содержит элементы управления, которые можно использовать в экранной форме. Если панель инструментов не появилась при создании экранной формы, то вызвать элементы управления можно, используя команду View | ToolBox или нажав на кнопку . “Панель инструментов” (или “Панель элементов управления”) предназначена для создания и редактирования объектов вашего приложения. При написании программ на VBA мы обязательно столкнемся с английскими названиями элементов управления, поэтому в таблице приведем русские и английские названия элементов управления.
Панель инструментов
Label (надпись) — статическая область текста, обычно содержащая какую-либо поясняющую информацию, а также это поле часто используют для вывода полученных результатов.
TextBox (поле) — элемент для ввода текста пользователем, который в последующем используется в программе.
CommandButton (кнопка управления) — элемент, с помощью которого в пользовательскую форму можно вставить командную кнопку. При нажатии на командную кнопку выполняются запрограммированные вами действия.
ListBox (список) — применяется для хранения списка значений. В списке пользователь может выбрать одно или несколько значений, которые в дальнейшем используются в программе.
ComboBox (поле со списком) — применяется для хранения списка значений. Этот элемент сочетает возможности элементов ListBox и TextBox.
ScrolBar (полоса прокрутки) как элемент управления — это не совсем то, чем вы привычно пользуетесь для прокрутки, например, рабочего листа. В данном случае полосы прокрутки применяются в качестве механизмов выбора. В графических программах вы, наверное, видели, как с помощью полос прокрутки можно
выбрать цвет либо сделать изображение более светлым или более темным.
SpinButton (счетчик) — используется для ввода или изменения числовых значений.
OptionButton (переключатель) — позволяет выбрать один из нескольких взаимоисключающих параметров или действий. Переключатели обычно отображаются группами, обеспечивая возможность альтернативного выбора.
CheckBox (флажок) — предоставляет пользователю возможность выбора. Флажок обычно имеет два состояния: установленное и сброшенное.
Togglebutton (выключатель) — кнопка, которая остается нажатой после щелчка на ней, и возвращается в исходное состояние после повторного щелчка.
Frame (рамка) — используется для визуального объединения каких-либо элементов управления в группу, показывая, что эти элементы связаны между собой.
Image (рисунок) — позволяет вставлять графические элементы в экранные формы. С помощью этого элемента можно вставлять изображения из графических файлов следующих типов: bmp; cur; gif; ico; jpg; wmf.
MultiPage (набор страниц) — этот элемент управления внешне похож на набор вкладок и также содержит одну или несколько страниц. Отличие между ними заключается в том, что страницы являются формами, содержащими собственные элементы управления (включая наборы вкладок), которые можно отформатировать всеми средствами форматирования экранных форм.
TabStrip (набор вкладок) — элемент управления, который содержит одну или несколько вкладок. Используется для организации в группы связанной информации.
RefEdit (поле со свертыванием) — этот элемент похож на обычное поле ввода, но имеет кнопку с правой стороны поля, которая сворачивает экранную форму, что позволяет легко выбрать любой диапазон ячеек на рабочем листе.
Наиболее часто используемыми являются:
Label (надпись);
TextBox (поле);
CommandButton (кнопка управления);
Image (рисунок);
OptionButton (переключатель);
CheckBox (флажок).
Создание пользовательской формы
Для создания пользовательской формы надо выполнить следующие действия:
1. Открыть новый файл или любой файл, в котором вы уже работали.
2. Выполнить команду меню Сервис | Макрос | Редактор Visual Basic. Откроется окно редактора Visual Basic.
3. Щелкнуть на кнопке Insert UserForm панели инструментов окна редактора Visual Basic или выполнить команду Insert | UserForm (Вставка | Экранная форма). Появится новая экранная форма.
Созданная экранная форма имеет по умолчанию строку с заголовком UserForm1. Сетка на макете формы помогает размещению элементов управления, при отображении формы в приложении сетка не видна.
После создания формы необходимо просмотреть свойства этого объекта и изменить установки, если это требуется по условию задачи. Для отображения окна свойств надо выбрать команду View | Properties Window (Вид | Окно свойств) или щелкнуть по одноименной кнопке на панели инструментов .
Наиболее часто используемые свойства объекта UserForm
Name | Имя пользовательской формы |
Caption | Текст, отображаемый в строке заголовка формы |
BackColor | Цвет фона формы |
BorderStyle | Устанавливает тип границы |
Picture | Указывает рисунок, отображаемый как фон формы |
Left и Top | Указывает местоположение верхнего левого угла формы в пунктах |
Height и Width | Возвращает высоту и ширину формы в пунктах |
SpecialEffect | Устанавливает тип отображения рабочего поля формы |
StartUpPosition | Возвращает значение, определяющее положение формы при ее первом отображении на экране. Допустимые значения:
|
Наиболее часто используемые методы объекта UserForm
Show | Отображает форму на экране |
Hide | Закрывает форму |
Используя панель элементов управления, из незаполненной формы можно сконструировать любое требуемое диалоговое окно. Размещение элементов управления в форме производится следующей последовательностью действий:
Нажать значок того элемента, который вы хотите разместить в форме. Поместить указатель мыши на то место, где будет располагаться элемент управления.
Нажать левую кнопку мыши и, не отпуская ее, растянуть появившийся прямоугольник до нужных размеров. Отпустить кнопку мыши, элемент создан.
В экранной форме можно также перемещать или изменять размеры элементов управления. Кроме того, можно изменить размеры и самой экранной формы, перетащив ее маркеры изменения размеров.
После успешного завершения разработки экранной формы можно просмотреть в действии полученный результат с помощью команды “Run | Run Sub/UserForm” (“Выполнить | Выполнить процедуру/экранную форму”) или нажать клавишу . Форма отобразится поверх текущей рабочей книги. Щелчок на кнопке “Закрыть” (находится в верхнем правом углу формы) закроет экранную форму и возвратит в редактор Visual Basic.
Разрабатываемое на языке приложение называется проектом. Проект включает в себя не только форму с размещенными на ней управляющими элементами, но и программные модули обработки событий, которые описывают поведение объектов приложения и взаимодействие объектов между собой.
6. Рисунки в пользовательских формах
Объект Image служит для размещения рисунка, загружаемого из графического файла.
Свойства объекта Image (рисунок)
Элемент управления Image (рисунок) создается с помощью кнопки “Рисунок”. Он используется для отображения графических файлов. В таблице перечислены некоторые свойства, используемые для управления выводом изображения. Картинку в элемент управления Image можно вставить только программным путем.
Тестирование и отладка программ
Процесс исправления ошибок называется отладкой.
Отладка программ и обработка ошибок всегда выступает как часть процесса разработки. Если бы все программировали идеально, то необходимость отладки программ и обработки ошибок отпала бы сама собой: каждая создаваемая программа выполняла бы все требуемые действия с первого раза. Как правило, такого не бывает, поэтому в большинстве систем разработки имеются инструменты, с помощью которых можно решить проблемы, возникающие в процессе программирования. В VBA также есть средства, которые позволяют либо исключить ошибки при разработке, либо задать отклик на ошибки при выполнении программ.
Отладка программ и обработка ошибок — это не одно и то же, но они тесно связаны друг с другом.
Отладка программ — это проверка и внесение исправлений в программу при ее разработке. Отладка позволяет идентифицировать ошибки, допущенные при программировании. Например, синтаксические ошибки в тексте программы, именах функций и переменных или логические ошибки.
Обработка ошибок — это задание реакции на ошибки, которые возникают во время выполнения программы. Причиной ошибок могут быть как ошибки в самой программе, так и другие обстоятельства, находящиеся вне сферы влияния программиста. Например, отсутствие файлов, к которым происходит программное обращение, отказ аппаратных средств или неправильные действия пользователя.
Невозможно предотвратить возникновение всех ошибок, но следует стремиться к уменьшению их числа. В маленькой программе довольно просто выявить ошибку.
Однако по мере увеличения размеров и сложности программ находить их становится все труднее. В таких случаях необходимо пользоваться средствами отладки VBA.
Среда разработки программ на VBA предоставляет пользователю современные удобные средства отладки программы.
Предположим, что уже написан код нашей процедуры. Следующий этап в создании любой процедуры — тестирование написанного кода.
Тестирование — это процесс выполнения процедуры и исследование всех аспектов ее работы.
Цель тестирования — проверить правильность результатов выполнения процедуры и ее реакцию на разнообразные действия пользователя. Если во время работы процедуры получены неверные результаты вычислений, непредвиденная реакция на те или иные действия пользователя, либо вообще произошла остановка выполнения, то это говорит о том, что в тексте программы имеются ошибки.
Все возможные ошибки можно разделить на три вида:
1. Ошибки компиляции. Возникают, если VBA не может интерпретировать введенный текст, например, при использовании неправильного синтаксиса инструкции или задании неверного имени метода или свойства. Некоторые ошибки компиляции обнаруживаются при вводе инструкции, а другие — только перед выполнением программы. Данный тип ошибок обычно просто идентифицировать и исправить, поскольку VBA выявляет их автоматически, а сами ошибки очевидны.
2. Ошибки выполнения. Возникают при выполнении программы, т.е. после успешной компиляции. Причиной таких ошибок может быть отсутствие данных или неправильная информация (например, данные, введенные пользователем). Ошибки выполнения, как и ошибки компиляции, легко идентифицируются VBA. При этом выводится инструкция, при выполнении которой произошла ошибка. Ошибки данного типа тяжелее устранить: может понадобиться вывести значения переменных или свойств, а также другие данные, которые влияют на успешное выполнение программы.
3. Логические ошибки труднее всего заметить и устранить. Логические ошибки не приводят к прекращению компиляции или выполнения. Однако они являются причиной того, что программа не выдает желаемых результатов. Ошибки данного типа идентифицируются путем тщательной проверки с помощью средств отладки VBA.
Компиляция — это процесс преобразования программы, написанной на алгоритмическом языке, в язык машинных кодов. Если в программе есть синтаксические ошибки, то процесс компиляции прекращается, строки с ошибкой закрашиваются желтым цветом и выдается соответствующее сообщение. Для продолжения выполнения программы необходимо исправить ошибку и нажать кнопку “Continue” на стандартной панели редактора VBA. Или прервать выполнение программы, нажав на кнопку “Reset” , исправить ошибку в программе, а затем заново запустить ее. При обнаружении ошибки компилятор выдает сообщение с указанием номера ошибки. В этом случае полезно, воспользовавшись справочной системой редактора VBA, определить характер ошибки и исправить ее.
Рис.Редактор Visual Basic немедленно реагирует на синтаксические ошибки
7. Стандартные диалоговые окна
Функция для создания окна сообщений записывается так:
MsgBox (Сообщение [,Атрибуты] [,Заголовок]).
Сообщение — текст, отображаемый в диалоговом окне, является обязательным аргументом. Эта строка должна быть заключена в двойные кавычки. Текст может содержать до 1024 символов. Использование круглых скобок указывает на то, что в данном случае MsgBox является функцией, возвращающей значение.
Атрибуты определяют особенности окна, т.е. различные кнопки и значки, отображаемые в нем. Аргумент Атрибуты позволяет управлять следующими параметрами окна сообщения: количеством кнопок в окне, типом кнопок и их размещением в окне, пиктограммой, отображаемой в окне.
Этот аргумент является целым числом и для достижения желаемого результата может быть представлен как сумма двух слагаемых:
Атрибуты = Параметр1 + Параметр2.
Значение Параметр1 устанавливает число и тип кнопок в окне сообщений.
В таблице приведены возможные значения этого параметра:
Параметр 1 | Набор кнопок |
0 | Отображается кнопка «ОК» |
1 | Отображаются кнопки «ОК» и «Cancel» (отмена) |
2 | Отображаются кнопки «Abort» (стоп), «Retry» (повтор), и «Ignore» (пропустить) |
3 | Отображаются кнопки «Yes» (да), «No» (нет), «Cancel» (отмена) |
4 | Отображаются кнопки «Yes» (да), «No» (нет) |
5 | Отображаются кнопки «Retry» (повтор), «Cancel» (отмена) |
Если аргумент Атрибуты не указан, то VBA предполагает, что в диалоговом окне сообщений присутствует только кнопка “ОК”.
Значение Параметр2 определяет вид сообщения и пиктограмму, которая помещается в окно сообщений.
Параметр 2 | Вид сообщения | Пиктограмма |
16 | Отображается значок критического сообщения |
32 | Отображается вопросительный знак (предупреждение) |
48 | Отображается восклицательный знак (предупреждение) |
64 | Отображается значок информационного сообщения |
Заголовок — строка в заголовке окна сообщений. Если этот аргумент опущен, то в строке заголовка отображается “Microsoft Excel”.
MsgBox как функция должна возвращать значение. Синтаксис функции MsgBox совпадает с синтаксисом одноименного оператора. Возвращаемое значение зависит от кнопки, нажатой пользователем. В таблице представлен список значений, возвращаемых функцией MsgBox.
Значение | Нажатая кнопка |
1 | “OK” |
2 | “Cancel” (отмена) |
3 | “Abort” (Стоп) |
4 | “Retry” (Повтор) |
5 | “Ignore”(Пропустить) |
6 | “Yes”(Да) |
7 | “No”(Нет) |
Окно ввода
Окно ввода, как и окно сообщений, может отображаться оператором или функцией.
Функция InputBox применяется для ввода чисел или текста. Эта функция отображает диалоговое окно ввода, содержащее поле ввода и поясняющий текст; ее синтаксис таков:
InputBox(Сообщение[, Заголовок ] [, Умолчание]).
Сообщение — единственный обязательный аргумент; он служит подсказкой пользователю, какую информацию необходимо занести в поле ввода.
Заголовок — это надпись в строке заголовка окна ввода.
Умолчание — значение, которое будет отображаться в поле ввода по умолчанию, пока пользователь не введет свое значение. Если этот аргумент опустить, то поле ввода отображается пустым.
Возвращаемым значением данной функции является информация, вводимая пользователем. Возвращаемое значение можно использовать в окнах сообщений, поместить в ячейку рабочего листа, применить в вычислениях и т.д.
В отличие от MsgBox параметр Атрибуты отсутствует, но появляется параметр Умолчание: в нем задается строка, которая по умолчанию будет находиться в текстовом поле. При нажатии кнопки “ОК” содержимое поля присваивается переменной, а при нажатии на кнопку “Cancel” возвращается строка нулевой длины.
ВНИМАНИЕ! Функция InputBox возвращает строку, а функция MsgBox возвращает значение целого типа.
Объединение текстовых строк
При объединении нескольких текстовых строк в одну используется символ конкатенации “&” (амперсанд) или “+” (плюс). Можно объединять числовые и символьные значения.
8. VBA в приложении к Word .
В данном разделе рассмотрим такие понятия, как объекты и макросы.
Объекты.
Пакет Word в сочетании с VBA предоставляет широкие возможности для работы с текстом или фрагментами текста. Можно вызвать для обработки какой-либо абзац, предложение и т.д.
Для доступа к тем или иным фрагментам документа используют такие объекты, как Sections (разделы), Paragraphs (абзацы), Sentences (предложения), Words (слова) и др.
Пример:
Words (6) | Дает возможность перейти к шестому слову в документе |
Sentences (11) | Переход к одиннадцатому предложению |
Words(6) дает возможность перейти к шестому
слову в документе
Sentences(11) переход к одиннадцатому предложению
После перехода к определенной части документа можно использовать объект Font, позволяющий изменять свойства шрифта. Этот объект содержит методы, находящиеся в панели меню “Формат | Шрифт”.
Объект Range является базовым в операции редактирования. Его можно рассматривать как непрерывный фрагмент текста (никак не связанный с выделенной областью), который не зависит от положения курсора. Range включает в себя такие объекты, как Words (слова) или Sentences (предложения); при обращении к ним сам объект Range указывать не нужно, тогда как для Sections (разделы) или Paragraphs (абзацы) это делать необходимо.
Объект Range поддерживает основные методы, которыми пользуются при форматировании текста (такие, как “Копировать”, “Вставить”, “Вырезать”, команды меню “Формат”).
Для выполнения заданий потребуется применение функций, работающих с символьными переменными.
1 | ASC (X$) | Переводит двоичный код символа в десятичное число |
2 | LEN (X$) | Находит длину символьной переменной, включая конечные пробелы |
3 | MID$ (X$, Y,Z) | Выдает последовательность Z символов из строки X$ с позиции Y |
4 | STR$ (X) | Преобразует значение X из числовой формы в символьную |
5 | CHR$ (X) | Преобразует код в символ |
6 | LEFT$(A$,N) | Выделяет N левых символов строки A$ |
7 | RIGHT$ (X$,N) | Выделяет N первых символов строки X$ |
Пример: |
Primer.Sentences(2).Font.ColorIndex=wdGreen | В документе Primer во 2-м предложении устанавливает зеленый цвет шрифта |
Primer.Sentences(2).Font.Size=16 | В документе Primer во 2-м предложении устанавливает шрифт размером 16 пунктов |
Primer.Sentences(2).Font.Underline=wdUnderlineDouble | В документе Primer во 2-м предложении устанавливает шрифт с двойным подчеркиванием |
Primer.Sentences(2).Font.Name=”Arial” | В документе Primer во 2-м предложении устанавливается шрифт ”Arial” |
Пример: |
Primer.Range(1,15).Bold=True | Символы с 1-го по 15-й выделяется жирным шрифтом |
Primer.Paragraphs(5).Range.InsertAfter «ПРИВЕТ» | В документ Primer после 5-го абзаца вставляется текст «ПРИВЕТ» |
Primer.Sentences(5).InsertAfter «ПРИВЕТ» | Текст «ПРИВЕТ» вставляется после 5-го предложения |
Primer.Words(5).InsertAfter «ПРИВЕТ» | Текст «ПРИВЕТ» вставляется после 5-го слова |
Макросы.
Для знакомства с примерами кодов целесообразно воспользоваться приемом, когда вы форматируете часть документа в режиме записи макроса, а потом анализируете код макроса и редактируете его.
Для записи макроса необходимо:
1. Выбрать в меню “Сервис | Макрос | Начать запись”.
2. Ввести в окне “Запись макроса” в поле “Имя макроса” имя нового макроса.
3. Выбрать в списке “Макрос доступен для” шаблон или документ, в котором будет храниться макрос.
4. Ввести описание макроса в поле “Описание”.
5. Ввести в поле “Назначить макрос” кнопку “Панели” (для назначения макросу кнопки панели инструментов или команды меню); кнопку “Клавишам” (для назначения макросу сочетания клавиш); если макросу назначение не требуется, нажмите кнопку “OK”. Если в процессе работы вы часто используете какой-либо макрос, то целесообразно назначить ему кнопку или сочетание клавиш.
6. Выполнить действия, которые нужно включить в макрос.
Следует помнить, что для записи действий надо использовать клавиатуру, поскольку действия, произведенные с помощью мыши, не записываются.
7. Нажать после записи макроса кнопку “Остановить запись”.
Существует одна особенность при сохранении готового документа Word, в котором находятся макросы и процедуры. Если вы вспомните работу с макросами в Excel, то при открытии готового документа там всегда задается вопрос: “Отключать макросы при открытии или нет?”. И если вы укажете, что макросы надо отключить, то подготовленные кнопки работать не будут.
В редакторе Word, в отличие от Excel, установлена сильная защита от макросов (макросы рассматриваются как вирусы), и при повторном открытии одного и того же документа, в котором все программы и макросы работали, запроса на включение или отключение макросов не будет, и работать также ничего не будет. Поэтому при сохранении документа в Word следует выполнить следующую последовательность действий:
1. Выбрать “Файл | Сохранить как | Сервис”. Появится диалоговое окно “Сохранение документа”.
2. Выбрать в меню “Сервис” пункт “Параметры безопасности”. Появится диалоговое окно “Безопасность”.
3. Щелкнуть по кнопке “Защита от макросов”, чтобы изменить уровень безопасности файла (по умолчанию установлен Высокий уровень безопасности, поэтому при повторном открытии файла ваши программы выполняться не будут).
4. Выбрать в появившемся диалоговом окне на закладке “Уровень безопасности” Средний или Низкий уровень безопасности. При выборе Среднего уровня безопасности при открытии документа будет появляться запрос на включение или отключение макросов. Для того чтобы программы и макросы в документе работали, надо выбрать “Не отключать макросы”.
“Не отключать макросы”.
При выборе Низкого уровня безопасности диалоговое окно появляться не будет, и макросы будут подключаться автоматически.
5. Перейти на закладку “Надежные источники” и включить флажок “Доверять доступ к Visual Basic Project”.
6. Сохранить документ.
9. VBA в приложении Power Point. Создание презентации.
Применение пользовательских форм.
В приложении Power Point с помощью VBA можно автоматизировать множество задач. Рассмотрим применение пользовательских форм для проектирования тестов и различных задач в PowerPoint. Кроме того, имеется возможность не только ввести информацию, но и использовать элементы управления. Для этого требуется следовать двум простым правилам:
1. Макросы необходимо назначить кнопкам панелей инструментов.
2. Элементы управления необходимо разместить в диалоговых окнах.
“Умеешь ли ты считать”
Создадим презентацию, с помощью которой можно проверить и оценить навыки устного счета.
Порядок работы:
1. Открыть Power Point и создать титульный слайд; оформить на нем пять кнопок:
- Посредством Панели элементов:
Сложение и вычитание от 1 до 20 |
Сложение и вычитание от 1 до 200 |
Таблица умножения |
Посчитай!!! |
- Через панель рисования:
2. Записать программы вызова пользовательских форм (через контекстное меню “Исходный текст”, выделив тематические кнопки).
Тексты программ кнопок:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub
Private Sub CommandButton2_Click()
UserForm4.Show
End Sub
Private Sub CommandButton3_Click()
UserForm3.Show
End Sub
Private Sub CommandButton4_Click()
UserForm2.Show
End Sub
3. Настроить кнопку “Выход” на завершение показа.
4. Спроектировать в редакторе Visual Basic пользовательскую форму UserForm1 “Сложение и вычитание от 1 до 10”.
При проектировании формы Свойство Caption для меток Label сделать пустым; отформатировать все элементы.
Далее следует описать событийные процедуры при нажатии на кнопки.
Объявление глобальных переменных
Public a As Integer
Public b As Integer
Public R As Integer
Public v As Integer
Public n As Integer
Public f As Integer
Программа для кнопки “Далее”
Private Sub CommandButton1_Click()
' a — переменная для первого числа
' b — переменная для второго числа
' R — переменная для получения результата
' v, n — переменные для подсчета верных
' и неверных ответов
' f — переменная оператора выбора
f = f + 1
Select Case f
Case 1
' Присваиваем значения переменным
' a и b через RND в интервале (0;9)
b = Int(10 * Rnd())
a = Int(10 * Rnd())
' Формируем в надписях – или + и =
Label3.Caption = "-"
Label5.Caption = "="
Определяем большее из чисел, и это — первое число, меньшее — второе число:
If a > b Then
Label2.Caption = a
Label4.Caption = b
Else
Label2.Caption = b
Label4.Caption = a
End If
' Вычисляем результат
R = Abs(a - b)
Case 2
Сравниваем результат и вводимый ответ, подсчитываем количество
If Val(R) = Val(TextBox1) Then
v = v + 1
Label12.Caption = "Верно"
Else
n = n + 1
Label12.Caption = "Неверно"
End If
Case 3
CLS
Label12.Caption = ""
b = Int(10 * Rnd())
a = Int(10 * Rnd())
Label2.Caption = a
Label4.Caption = b
Label3.Caption = "+"
Label5.Caption = "="
R = a + b
Написать аналогичные программы для следующих 9 примеров.
' Проверка результата в примере 10
Case 20
If Val(R) = Val(TextBox1) Then
v = v + 1
Label12.Caption = "Верно"
Else
n = n + 1
Label12.Caption = "Неверно"
End If
' Вводим в надписи количество верных и неверных ответов, даем напутствия
Label7.Caption = "Ваш результат"
Label8.Caption = "Верно"
Label10.Caption = Str(v)
Label9.Caption = "Неверно"
Label11.Caption = Str(n)
If v = 10 Then Label12.Caption =
" Молодец!!!" Else Label12.Caption =
"Еще поработай над счетом!!!"
Case 21
UserForm1.Hide
End Select
End Sub
Программа кнопки “Снова”
Private Sub CommandButton2_Click()
Набираем программный код для кнопки снова (для этого щелкнем по кнопке)
CLS
'Обнуляем переменные, подсчитывающие
результат
n = 0
v = 0
'В надписях стираем информацию
Label10.Caption = ""
Label11.Caption = ""
Label2.Caption = ""
Label4.Caption = ""
Label3.Caption = ""
Label5.Caption = ""
Label7.Caption = ""
Label8.Caption = ""
Label9.Caption = ""
f = 0
End Sub
Sub CLS()
TextBox1.Text = ""
End Sub
В рабочем состоянии форма выглядит так:
5. Спроектировать пользовательские формы UserForm2, UserForm3, UserForm4.
6. Записать программы в кнопках.
Вид формы UserForm2 “Сложение и вычитание от 1 до 200” может быть таким:
Примерный вид формы UserForm3 “Таблица умножения”:
А вот такой может быть форма UserForm4 “Посчитай”:
7. После этого проверяется работоспособность проекта и сохраняется работа.
10. Вывод.
В результате многолетнего труда Microsoft позиционирует свой пакет MSOffice не просто как набор прикладных программ, а как комплексную платформу для создания бизнес приложений, решающих широкий круг специализированных задач пользователей. Именно этим объясняется появлением в его составе специального выпуска для разработчиков приложений — Developer Edition.
Одновременно, VBA активно продвигает в качестве отраслевого стандарта для управления программируемыми приложениями, объявив о возможности его лицензирования. Сегодня уже более ста ведущих мировых фирм-разработчиков прикладных программ приобрели лицензии на него и включают VBA в состав своих программных продуктов.
Освоение механизма программирования VBA, реализованного в офисном приложении открывает пользователям возможность использования полученных знаний и навыков при работе с десятками и сотнями других программ, в том числе и тех, которых пока еще нет на свете. Начав с составления простейших макрокоманд, при желании можно в рамках одного инструментария стать профессионалом, разрабатывающим программные системы любой сложности.
Десять лет назад во всем мире было не более двух миллионов программистов. Сегодня их насчитывается около десяти миллионов, из них не менее 70 процентов используют в качестве хотя бы одно из инструментов VB или VBA.
Список литературы:
- А.Васильев, А.Андреев. VBA в Office 2000. Учебный курс. С-Пб.: "Питер", 2001
- Биллиг В.А. Средства разработки VBA-программиста. Офисное программирование. Том 1. М.: Издательско-торговый дом "Русская Редакция", 2001.
- Биллиг В.А. Мир объектов Excel 2000. М.: Издательско-торговый дом "Русская Редакция", 2001.
- В.И.Король. Visual Basic 6.0, Visual Basic for Applications 6.0. Язык программирования. Справочник с примерами. М.: Издательство КУДИЦ, 2000.
- В. Комягин, А. Коцюбинский, «Современный самоучитель работы на персональном компьютере», Москва 2003
- О.А. Житкова, Т.И. Панфилова, «VBA в приложении к Excel, Word и Power Point» Москва 2006.