- •Министерство образования российской федерации
- •М инистерство образования российской федерации
- •Аннотация
- •Содержание
- •Тема 1. Основы программирования
- •Создание, редактирование и запуск программ
- •Переменные, константы и типы данных
- •Управляющие конструкции
- •Управляющая конструкция If…Then позволяет выполнять один или несколько операторов, если условие истинно. Можно использовать однострочный и блочный синтаксис. Например:
- •Тема 2. Введение в модели объектов
- •2.1. Обзор моделей объектов
- •2.2. Автоматизация операций с использованием объектов
- •2.3. Программирование объектов другого приложения
- •Тема 3. Объекты Microsoft Office
- •3.1. Объекты Microsoft Access
- •3.2. Объекты Microsoft Excel
- •3.3. Объекты Microsoft Power Point
- •3.4. Объекты Microsoft Word
- •Тема 4. Меню и панели инструментов
- •4.1. Средства настройки пользовательского интерфейса
- •4.2. Выбор подходящих элементов пользовательского интерфейса
- •4.3. Система меню
- •4.4. Модификация системы меню на этапе разработки
- •4.5. Модификация системы меню в период выполнения
- •4.6. Панели инструментов
- •4.7. Модификация панелей инструментов на этапе разработки
- •4.8. Модификация панелей инструментов в период выполнения
- •Тема 5. Элементы управления на базе ActiveX и диалоговые окна
- •5.1. Разработка нестандартных диалоговых окон
- •5.2. Использование нестандартных диалоговых окон
- •5.3. Работа с элементами управления в документе, листе или на слайде
- •Тема 6. Оптимизация кода
- •6.1. Основные принципы оптимизации кода
- •6.2. Оптимизация кода для Microsoft Excel
- •6.3. Оптимизация кода для Microsoft Word
- •Тема 7. Отладка и обработка ошибок
- •7.1. Создание обработчика ошибок
- •7.2. Иерархия обработчиков ошибок
- •7.3. Тестирование обработчика за счет эмуляции ошибок
- •7.4. Строчная обработка ошибок
- •7.5. Отключение обработки ошибок
- •7.6. Общие принципы отладки
- •7.7. Режимы конструктора, выполнения и прерывания
- •7.8. Окна отладки
- •7.9. Просмотр стека вызовов
- •Тема 8. Разработка приложений для Интернета и Word Wide Web
- •8.1. Термины и концепции, связанные с Интернетом
- •8.2. Работа с гиперссылками
- •8.3. Сохранение документов и объектов в формате html
- •8.4. Элемент средства просмотра Web Microsoft
- •8.5. Элемент управления Internet Transfer
- •Указывать допустимый сервер-заместитель в свойстве AccessType элемента управления Internet Transfer (таблица 8.4);
- •Элемент управления Internet Transfer автоматически настраивается на нужный протокол, заданный в первой части url. Поэтому применение метода OpenUrl или Execute не требует установки свойства Protocol.
- •8.6. Элемент управления WinSock
- •8.7. Создание персонального Web-сервера
- •Тестовые задания для закрепления материала учебного пособия
- •Рекомендуемая литература
- •Б) дополнительная литература
Переменные, константы и типы данных
1.2.1. Типы данных в Visual Basic
Динамический массив объявляется так же, как и фиксированный, но без указания размерностей в скобках после имени массива:
Dim dynArray() As Integer
А затем где-то в процедуре определяется нужное число элементов массива оператором ReDim:
ReDim dynArray(X + 1)
Ключевое слово Preserve позволяет изменять размер массива без потери его текущего содержимого. Например, чтобы увеличить размер массива на один элемент без потери значений существующих элементов, необходимо организовать следующую процедуру:
ReDim Preserve myArray(UBound(myArray) + 1)
1.2.3. Объявление объектной переменной
При объявлении объектной переменной указывается либо универсальный тип Object, либо конкретное и имя класса. Если тип переменной задан как Object, Visual Basic не знает объекты какого типа переменная будет использовать в дальнейшем. Поэтому Visual Basic при компиляции не сможет проверить, существует ли такой объект, корректно ли применяются его методы и свойства, и не сумеет связать эту информацию с объектной переменной – иначе говоря, Visual Basic не выполнит раннее связывание (early binding) объектной переменной. Лишь после запуска программы, объектной переменной будет присвоена ссылка на конкретный объект, Visual Basic получит необходимую информацию и выполнит позднее связывание (late binding). Универсальные объектные переменные полезны только в том случае, когда заранее не известен конкретный тип объекта или когда за переменной периодически закрепляются объекты разных классов. Так, что по возможности следует указывать при объявлении объектной переменной имя конкретного класса, например:
Dim mySheet As Worksheet
Dim myPres As Presentation
Dim myRange As Range
Dim myApp As Application
Тип объектной переменной (в дополнение к конкретному имени класса) можно квалифицировать именем приложения, которое предоставляет данный объект. Это полезно в программе, использующей объекты из нескольких библиотек (особенно если в них содержатся объекты с одинаковыми именами):
Dim wndXL As Excel.Window
Dim wndWD As Word.Window
Dim appWD As Word.Application
Для закрепления объекта за переменной предназначен оператор Set:
Dim myRange As Excel.Range
Set myRange = Worksheets(“Sheet1”).Range(“A1”)
Если объектная переменная не объявлена явно и в момент присвоения не указано ключевое слово Set, Visual Basic не закрепит объект за этой переменной, а присвоит ей значение свойства объекта по умолчанию.
1.2.4. Встроенные константы
Библиотека объектов каждого приложения Office предоставляет набор встроенных констант, которые можно использовать для задания значений свойств или передачи аргументов свойствам и методам. Набор встроенных констант, отражающих допустимые значения какого-либо свойства или параметра, передаваемого свойству или методу, представляется перечислимым типом. Для многих свойств и методов в качестве типа возвращаемого значения или параметра Object Browser (средство просмотра объектов) отразит именно перечислимый, а не базовый тип данных. Чтобы открыть в Visual Basic окно Object Browser (Просмотр объектов), предусмотрена клавиша F2. С его помощью можно просмотреть, какие константы составляют перечислимый тип, и каковы их значения. Например, если в списке Classes (Классы) выделить строку Application, а в списке Members Of (Компонент) – строку Display Alerts, в нижней части окна Object Browser отразится следующий текст:
Property DisplayAlerts As WdAlertLevel
WdAlertLevel – перечислимый тип, объединяющий константы, которые представляют все допустимые значения свойства DisplayAlerts. Перечислимый тип всегда можно узнать по имени, поскольку оно всегда начинается с префикса, обозначающего библиотеку объектов, в которой определен этот тип, - например: Mso, Wd, Xl, Ac, Pp, VB или Fm. Имена встроенных констант начинаются с тех же префиксов, что и имена перечислимых типов. Чтобы просмотреть константы перечислимого типа, необходимо активизировать подчеркнутую строку WdAlertLevel. После этого WdAlertLevel станет текущим в списке классов Object Browser, и константы этого типа появятся в списке Members Of (Компонент). Если активизировать одну из констант, в нижней части окна Object Browser (Просмотр объектов) будет показано значение, которое представляет данная константа.
Встроенные константы используются в программах вместо литеральных значений. Следующие две строки кода, каждая из которых устанавливает в Word режим показа всех предупреждений и сообщений при выполнении процедуры, эквивалентны:
Application.DisplayAlerts = -1
Application.DisplayAlerts = wdAllertsAll
Константы легче читать, чем литеральные значения. Кроме того, если эти значения в будущих версиях приложений изменяться, то вряд ли придется модифицировать программу, использующую константы. Вполне вероятно, что литеральное значение -1 больше не будет соответствовать параметру, заставляющему выводить все сообщения и предупреждения, но константа wdAllertsAll – будет обязательно.