Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA Л19 Л20.docx
Скачиваний:
5
Добавлен:
02.12.2018
Размер:
254.92 Кб
Скачать

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

Язык программирования Visual Basic является типичным представителем семейства объектно-ориентированных языков программирования. Visual Basic, как и некоторые другие языки программирования, например QBasic, являются своего рода «потомками» языка Basic, одного из самых популярных ранее языков программирования. Язык Visual Basic сохранил простоту и доступность своего предка, однако, в отличие от него умеет работать с различными объектами. Кроме собственно Visual Basic существует также Visual Basic for Application (VBA), который является языком программирования в среде Windows&Office. Оба языка программирования практически идентичны, различие заключается в большей универсальности языка Visual Basic, тогда как VBA больше ориентирован на выполнение прикладных задач.

События и объекты

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

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

Классы объектов являются «шаблонами», определяющими наборы свойств, методов и событий по которым создаются объекты. В среде Windows&Office существует более ста различных классов объектов, каждый из которых обладает специфическим набором свойств, методов и событий.

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

Объект, созданный по «шаблону» класса объектов, является экземпляром класса и наследует весь набор свойств, методов и событий данного класса. Каждый экземпляр класса имеет уникальное для данного класса имя, которое указывается в скобках после названия класса, например:

Document ("Проба.doc").

Обращение к объекту, входящему в семейство, производится по его имени или индексу. Например, обращение к документу производится по его имени:

Documents ("Проба.doc"),

Объекты (семейства объектов) в приложениях Windows образуют некоторую иерархию. На вершине иерархии находится объект Application (приложение), который включает все остальные объекты. Так, объект Application, вершина иерархии объектов приложения Word, включает в себя, в том числе, объекты Document (документ) и Selection (фрагмент документа), а объект Document включает объекты Character (символ), Paragraph (абзац), Table (таблица) и др.

Application.Document ("Проба.doc").

Однако делать каждый раз полную ссылку на объект необязательно. Если объект является активным, например, если вы работаете с документом Проба.doc в приложении Word, достаточно сделать относительную ссылку на сам документ:

Document ("Проба.doc").

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

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

Синтаксис команды применения метода объекта:

Объект.Метод арг1 := значение, арг2 := значение

Запись программы на языке VBA такова, что в начале и в конце программы ставятся ключевые слова Sub (в тексте программы выделяются жирным шрифтом). После начального Sub указывается имя программы. Перед конечным Sub — ставится ключевое слово End.

Для пояснения команд программы рекомендуется в текст программы вводить комментарии. Комментарии размещаются после символа апостроф (').

Sub Печать ()

'Открытие документа

Documents().Open

FileName:="С:ДокументыПроба.doc"

'Печать документа

Documents("Пробa.doc").Printout _

Range:=wdPrintFromTo, From:="l", To:="3"

'Сохранение документа

Documents("Проба.doc").Save

End Sub

Для присваивания свойству конкретного значения используется знак равенства.

Синтаксис установки значения свойства объекта:

Объект.Свойство = ЗначениеСвойства

Одним из классов объектов является класс символов Characters(). Экземпляры класса нумеруются: Characters (1), Characters (2) и т.д. Установим во фрагменте текста (объект Selection) для первого символа (объект Characters (1)) начертание полужирный (свойство Bold).

Синтаксис установки значения нескольких свойств объекта:

With Объект

.Свойство1 = ЗначениеСвойства1

.Свойство2 = ЗначениеСвойства2

.СвойствоN = ЗначениеСвойстваN

End With

Процедуры

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

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

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

Имя процедуры включает в себя имя объекта и имя события.

Объект_Событие()

В событийной процедуре могут участвовать несколько объектов. Например, само событие происходит с первым объектом (Объект1), в результате второй (Объект2) изменяет значение своего свойства, а третий (Объект3) реализует какой-либо метод.

Каждая процедура представляет собой отдельный программный модуль, с ключевого слова Sub (subroutine - подпрограмма) и заканчивается ключевыми словами End Sub. Синтаксис языка Visual Basic такой же, как языка VBA, запись событийной процедуры производится следующим образом.

Синтаксис записи событийной процедуры:

Sub Объект(1)_Событие()

Объект(2).Свойство = ЗначениеСвойства

Объект(3).Метод арг1:=знач, арг2:=знач

End Sub

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

Каждой общей процедуре дается уникальное название — имя процедуры и устанавливается список входных и выходных параметров процедуры.

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

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

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

Синтаксис вызова процедуры имеет вид:

Call ИмяПроцедуры (СписокПараметров)

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

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

Синтаксис локальной событийной процедуры следующий:

Private Sub Объект_Событие()

…………….

End Sub

Глобальные процедуры доступны из всех программных модулей. Они предваряются ключевым словом Public. Однако его наличие не является обязательным. По умолчанию, если перед ключевым словом Sub ключевые слова отсутствуют, процедура является глобальной.

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

Рис. 5. Программный модуль

Основными объектами, используемыми при визуальном программировании, являются формы (Forms).

Рис. 6. Формы.

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

Управляющими элементами являются командные кнопки (CommandButton), переключатели, или «флажки» (Checkbox), поля выбора, или «радиокнопки» (Options-Button), списки (ListBox), текстовые поля (TextBox) и др.

Рис. 7. Управляющие элементы

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

Лекция 20.Команды и операторы языка программирования. Назначение и порядок использования функций СУБД.

1. Простейшие конструкции языка Visual Basic

Значениями переменных могут быть данные различных типов (целые или вещественные числа, последовательности символов, логические значения и т.д.). Тип переменных определяется типом данных, которые могут быть значениями переменных. Значениями переменных числовых типов (Byte, Integer, Long, Single, Double) являются числа, логических (Boolean) — True или False, строковых (String) — последовательности символов и т.д. Обозначения типов переменных являются ключевыми словами языка и поэтому не могут быть использованы в качестве имен переменных.

Разработчик языка Visual Basic фирма Microsoft рекомендует, для большей понятности текстов программ для программиста, в имена переменных включать особую приставку, которая обозначает тип переменных. Тогда, например, имена целочисленных переменных целесообразно записать как intA или intЧисло, а текстовых — strA или strCтpокa.

Простейшим способом задания типа переменной (ее объявления) является приписывание к имени переменной определенного суффикса. Например, числовую переменную типа Integer можно задать как А%, а строковую переменную String как А$.

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

Dim ИмяПеременной [As ТипПеременной]

Здесь Dim и As являются ключевыми словами языка Visual Basic, помещение части фразы в квадратные скобки говорит о том, что этот параметр является необязательным и может использоваться пользователем по необходимости. Назначение оператора Dim — объявить переменную, т.е. задать ее имя и тип, однако объявление типа может отсутствовать. С помощью одного оператора можно объявить сразу несколько переменных, например:

Dim intЧисло As Integer, Строка As String

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

[Let] ИмяПеременной = Выражение

Ключевое слово Let в большинстве случаев не используется.

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

Массивы являются набором однотипных переменных, объединенных одним именем. Массивы бывают одномерные, которые можно представить в форме одномерной таблицы, и двумерные, которые можно представить в форме двумерной таблицы.

Массивы могут быть различных типов: числовые, строковые и т.д.

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

Обозначается массив следующим образом:

ИмяМассива(Индекс)

Индекс может принимать любые целочисленные значения (например, от 1 до 30). Обращение к элементу массива производится по его имени, состоящему из имени массива и значения индекса, например, strA(5).

Объявление массива производится аналогично объявлению переменных, необходимо только дополнительно указать диапазон изменения индекса. Например, объявление строкового массива, содержащего 30 элемента, производится следующим образом:

Dim strA(l To 30) As String

В этом случае нумерация элементов массива будет начинаться с 1. Если не указывать явно номер первого элемента массива, то по умолчанию Visual Basic и VBA нумеруют массивы начиная с 0:

Dim strA(30) As String

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

Синтаксис объявления констант следующий:

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

В отношении констант также действует оператор присваивания.

Переменные могут образовывать арифметические, строковые и логические выражения.

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

Таблица 3. Некоторые арифметические операции

Запись арифметических операций в Visual Basic

Арифметические операции

А + В

Сложение А и В

А – В

Вычитание В из А

А * В

Умножение А на В

А / В

Деление А на В

А В

Целочисленное деление А на В

А^В

Возведение А в степень В

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

Пусть, например, строковое выражение будет включать строку "ин", строковую переменную strA, значением которой является строка "форма", и строку "тика":

"ин" + StrA + "тика".

Тогда значением строкового выражения будет:

"информатика".

В состав логических выражений кроме логических переменных могут входить также числа, числовые или строковые переменные или выражения, которые сравниваются между собой с использованием операций сравнения (>, <, =, >=, <= и т.д.).

Логическое выражение может принимать лишь два значения: «истина» (True) или «ложь» (False). Например:

5 > 3 — истинно;

2*2 = 5 — ложно.

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

(5 > 3) And (2*2 = 5) — условие ложно;

(5 > 3) Or (2*2 = 5) — условие истинно.

Пример программы на Visual Basic

Целиком программа выглядит следующим образом:

Dim intA, intB As Integer, bytC As Byte, sngD As Single,_ dblE As Double

Sub Commandl_Click()

intA = 2

intB = 3

bytC = intA / intB

sngD = intA / intB

dblE = intA / intB

Form1.Print bytC, sngD, dblE

End Sub

После запуска программы на экране появится ее графический интерфейс (форма Form1 с размещенной на ней командной кнопкой Command1). Щелчок на кнопке (событие) вызовет выполнение событийного программного модуля и на форме будут напечатаны результаты реализации алгоритма.

Результаты показывают, что деление двух чисел производится с различной точностью, которая зависит от типа переменной, используемой для хранения результатов вычислений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]