Панель инструментов Object Browser
На панели инструментов расположены кнопки, облегчающие поиск объектов приложения. Выход из Object Browser · Переход к редактируемой процедуре осуществляется простым щелчком мыши, если текст процедуры виден на экране. В противном случае можно закрыть окно Object Browser нажатием на кнопку закрытия окна. При этом содержание справки сохраняется до следующего вызова Object Browser. · Можно в списке проектов/библиотек выбрать название нужного проекта, и тогда в окне классов появятся компоненты проекта. Двойной щелчок на имени процедуры или названии модуля (процедурного листа) переводит в редактор VB.
СВОЙСТВА, МЕТОДЫ И СОБЫТИЯ ОБЪЕКТОВ Свойства объекта делятся на две группы: -свойства-участники (accessors), представляющие вложенные объекты; -терминальные свойства (terminals), задающие характеристики объекта или его состояние. Свойства-участники позволяют получить доступ к объекту, находящемуся на любом уровне вложенности. Например, для MS Excel запись Application. ActiveWorkbook осуществляет доступ к активной рабочей книге, а запись ActiveWorkbook. ActiveSheet – к активному листу активной рабочей книги. Изменение значений терминальных свойств – это один из способов изменить внешний объекта. Свойства имеют статус: -Read-Write (далее R/W) предполагает возможность изменения свойства; -Read-Only (далее R/O) означает, что доступно только тестирование значения свойства. Свойства объектов изменяются при помощи оператора присваивания или под влиянием методов. В качестве значений свойств могут использоваться константы приложения. Методы – это действия, которые выполняются с объектом. Например, если необходимо очистить интервал ячеек, то используется метод Clear для объекта Range. Очевидно, что методы могут влиять на значения свойств, например, метод Clear изменяет свойство Value интервала ячеек, устанавливая его в Empty.
Каждый объект имеет свои собственные методы. Некоторые методы являются уникальными, а другие встречаются у нескольких объектов. Например, метод Delete может удалять графический объект и рабочий лист рабочей книги Excel. Событие, например, – это нажатие командной кнопки в диалоге, закрытие или активизация окна документа.
ОБРАЩЕНИЕ К ОБЪЕКТУ Контейнеры Объекты приложения могут содержать в себе объекты разных типов. Например, рабочая книга Excel может содержать один или несколько рабочих листов и листов диаграмм. Когда объект одного типа находится внутри объекта другого типа, говорят о контейнере (container), в котором содержится объект.
Самый старший контейнер объектов – это приложение Application. Приложение в Excel суть контейнер для всех открытых рабочих книг, и в то же время оно содержит такой глобальный объект, как строка меню, который доступен любой рабочей книге. Рабочий лист представляет пример того, что объект может быть частью нескольких контейнеров или коллекций одновременно: он входит в рабочую книгу, с одной стороны, а с другой стороны – является частью коллекции Sheets и коллекции Worksheets. Рассмотрение объекта в качестве контейнера позволяет уточнить, сославшись на контейнер, с каким именно объектом производится действие в процедуре. Ссылка на объект Ссылка на объект состоит из имени контейнера и названия свойства-участника и может состоять из нескольких спецификаторов (имен контейнеров), отделенных друг от друга точкой. Такая запись отражает иерархию объектов и позволяет точно указать конкретный объект. Ссылка на объект коллекции – это название коллекции, после которого в скобках указывается индекс объекта или его имя в кавычках. Например, для Excel ссылка Workbooks(1) выбирает первую из открытых рабочих книг, а Workbooks("budget") ссылается на рабочую книгу с именем "budget".
Оператор With В VBA перед обращением к каждому из методов или свойств объекта требуется наличие ссылки на объект. Конструкция With…End With позволяет применить последовательность операторов к объекту, указав ссылку на него только один раз в операторе With. Благодаря этому программа становится менее громоздкой, освобождаясь от повторений ссылки на объект. Синтаксис оператора: With Object [statements] End With Object – имя объекта; statements – последовательность операторов, выполняемых с объектом. Использование объектных переменных Применение объектных переменных улучшает читабельность программы, уменьшает время выполнения программы, т. к. при каждом выполнении оператора, обращающегося к объекту, не придется проходить полную цепочку иерархии объектов ТИПЫ ДАННЫХ Типы данных - это определенные виды данных, которые VBA сохраняет и может манипулировать. Тип Date VBA использует тип Date для хранения дат и времени. Числа VBA имеет шесть различных численных типов данных: Byte, Integer, Long, Single, Double, Currency. Они используются для хранения чисел в различных форматах, в зависимости от конкретного типа. Целые числа Integer - это целое число без дробной части. VBA предоставляет три типа целых данных: Byte, Integer, Long. Byte - предназначен для хранения числе от 0 до 255. Этот тип обычно используют для хранения двоичных данных. Integer использует диапазон целых чисел от -32768 до 32767. Long использует диапазон целых чисел от -2147483648 до 2147483647. Числа с плавающей точкой VBA имеет два типа данных с плавающей точкой: Single, Double. Single используется для хранения: Double используется для хранения: Тип данных Currency Это число с фиксированной точкой, т.е., десятичная точка всегда находится в одном и том же месте - справа от точки всегда имеются четыре цифры. Этот тип данных используется при денежных вычислениях, когда требуется высокая точность.
Currency хранит числа в диапазоне от -922337203685477,5808 до 922337203685477,5807. Текстовые строки Любые текстовые данные, сохраняемые в VBA, называются строками. Для их хранения предназначен тип данных String. Строка может содержать текстовые символы любых типов: буквы, цифры, знаки пунктуации, разделительные символы и пр. Строки всегда заключаются в двойные кавычки. Существует две категории строк: строки переменной длины и строки фиксированной длины. По умолчанию в VBA все строки переменной длины. Логические значения Логические значения True и False называются булевскими значениями, а тип данных - Boolean. Булевские значения получают как результат операции сравнения. Операции сравнения имеет место при сравнении одного с другим. Тип данных Variant Данные типа Variant принимают характеристики определенного типа, который они сохраняют в данный момент. Например, если данные типа Variant содержат строковые данные, Variant принимает характеристики типа String. VBA использует для данных типа Variant наиболее компактное представление, возможное для конкретных значений, находящихся в данных. Можно еще использовать пользовательские типы данных, но их вначале нужно определить при помощи выражения Type. Обычно пользовательские типы данных используются как дополнительное средство проверки вводимых пользователем значений (классический пример — почтовый индекс). ПЕРЕМЕННЫЕ И КОНСТАНТЫ Как и в других языках программирования, в VBA для хранения временных значений, передачи параметров и проведения вычислений используются переменные. Обычно перед тем, как использовать переменную, производится ее объявление. В VBA, как и в обычном языке Basic, для этого используется оператор Dim. Вот синтаксис этого оператора: Dim <имяПеременной> [As <типДанных>] В VBA действуют следующие правила именования переменных. Имя не может быть длиннее 255 символов, оно должно начинаться с буквы, за которой могут следовать буквы, цифры или символ подчеркивания. Оно не должно содержать пробелов, знаков препинания или специ-альных символов, за исключением самого последнего знака. В конце к имени переменной может быть добавлен еще один из следующих шести специальных символов - описателей типа данных:! # $ % & @
Использование именованных констант. Для их описания используется оператор Const, схожий с оператором описания переменных Dim. Вот синтаксис этого оператора: Const <имяКонстанты> [As < типДанных>] = <выражение> где <выражение> - это любое значение или формула, возвращающая значение, которое должно использоваться в качестве константы. Как и переменные, они могут содержать значения различных типов данных, но при этом они не меняют своих значений во время выполнения программы. МАССИВЫ Массив - это переменная, в которой хранится одновременно несколько значений одинакового типа. О количестве индексов массива обычно говорят как о размерности массива. Массивы с одним индексом называют одномерными; с двумя - двухмерными, и так далее. Прежде чем использовать массив, нужно обязательно объявить его с помощью оператора Dim, и указать при этом тип хранящихся в массиве значений. Все значения в массиве обязаны принадлежать к одному типу данных. Это ограничение на практике можно обойти, используя при объявлении массива тип Variant, - и в этом случае элементы массива смогут принимать значения различных типов. Вот синтаксис оператора объявления массива: Dim<имяМассива> (<размер1>, <размер2>,... As <типДанных> где указанные в скобках величины <размер1>, <размер2> и т д. задают размеры массива - количество индексов и максимально допустимое значение для каждого конкретного индекса. При этом индексирование элементов массива по умолчанию начинается с нуля. Вот синтаксис определения массива по границам: Dim <имяМассива> {<мин1> То <макс1>,...) As <типДанных> Массивы фиксированного размера, количество элементов в которых явно указано во время описания массива в операторе Dim. Такие массивы называются статическими. В VBA допускается использование и динамических массивов, размеры которых при описании не фиксируются. Определение размера динамического массива может быть сделано непосредственно во время выполнения программы При определении динамического массива в операторе Dim после имени массива стоят лишь пустые скобки и описание типа переменных. Количество индексов и диапазон их изменения не задаются. Однако, перед тем как использовать массив, нужно выполнить оператор ReDim, который задаст размерность и диапазоны изменения индексов динамического массива.
Синтаксис объявления и определения размеров динамического массива таков: Dim <имяМассиза> () As <типДанных> ReDim <имяМассива> (<размер1>, <размер2>,...) Учтите, что по умолчанию при изменении размеров массива ему заново выделяется памятъ, и текущие значения его элементов теряются. Чтобы не потерять текущие значения массива при изменении его размеров, используется ключевое слово Reserve. Например, чтобы увеличить размер массива dArray на один элемент, не потеряв значений существующих элементов, можно поступить следующим образом: ReDim Reserve dArray (Ubound (dArray) + 1)
ЦИКЛЫ две основные группы - циклы с условием Do...Loop и циклы с перечислением For...Next. Циклы типа Do...Loop используются в тех случаях, когда заранее не известно, сколько раз должно быть повторено выполнение блока операторов, составляющего тело цикла. Такой цикл продолжает свою работу до тех пор, пока не будет выполнено определенное условие. Существуют четыре вида циклов Do...Loop, которые различаются типом проверяемого условия и временем выполнения этой проверки. -Do While <условие> <блокОператоров>Loop -Do <блокОператоров>Loop While <условие> -Do Until <условие> <блокОператоров>Loop -Do <блокОператоров>Loop Until <условие> Имеется также две разновидности оператора цикла с перечислением For...Next. Очень часто при обработке массивов, а также в тех случаях, когда требуется повторить выполнение некоторой группы операторов заданное число раз, испольэуется цикл For...Next со счетчиком. В отличие от циклов Do...Loop, данный тип цикла использует специальную переменную, называемую счетчиком, значение которой увеличивается или уменьшается при каждом выполнения тела цикла на заданную величину. Когда значение этой переменной достигает заданного значения, выполнение цикла заканчивается. :For <счетчик> = <начальное3начение> То <конечное3начение> [Step <приращение>] <блокОператоров> Next [<счетчик>}Рассмотрим еще одну разновидность цикла For...Next, часто использующуюся в VBA при обработке объектов, составляющих массив или семейство однородных объектов. В этой разновидности цикла For Each...Next счетчик отсутствует, а тело цикла выполняется для каждого элемента массива или семества объектов. Вот синтаксис такого цикла: For Each <элемент> In <совокупносгь> <блокОператоров> Next [<элемент>] где: <элемент> - это переменная, используемая для ссылки на элементы семейства объектов <совокупность> - это имя массива или семейства.
ОПЕРАТОРЫ Оператор — это наименьшая способная выполняться единица кода VBA. Арифметические операторы Арифметических операторов в VBA всего 7. Четыре стандартных: сложение (+), вычитание (-), умножение (*), деление (/) и еще три: -возведение в степень (^), -целочисленное деление (\). Делит первое число на второе, отбрасывая (не округляя) дробную часть. Например, 5\2 = 2; -деление по модулю (Mod). Делит первое число на второе, возвращая только остаток от деления. Например, 5 Mod 2 = 1. Оператор присваивания Оператор присвоения в VBA — знак равенства. Можно записывать так: Let nVar = 10 (nVar = 10) Операторы сравнения Операторов сравнения в VBA всего 8: равенство (=), например, If (nVar = 10); больше, чем и меньше, чем (> и <), например, If (nVar > 10); больше или равно и меньше или равно (>= и <=), например, If (nVar >= 10); не равно (<>), например, If(nVar<>10); сравнение объектов (Is). Определяет, ссылаются объектные переменные на тот же объект или на разные, например, If(obj1 is obj2); подобие (Like). Сравнивает строковый объект с шаблоном и определяет, подходит ли шаблон. Операторы сравнения всегда возвращают true или false — true, если утверждение истинно, и false, если ложно. Синтаксис оператора Like выглядит как Выражение1 Like Выражение2 При этом Выражение1 — любое текстовое выражение VBA, а Выражение2 — шаблон, который передается оператору Like. Очень часто при проверке нескольких условий используются логические операторы: AND — логическое И, должны быть истинными оба условия; OR — логическое ИЛИ, должно быть истинным хотя бы одно из условий; NOT — логическое отрицание, возвращает TRUE, если условие ложно; XOR — логическое исключение. В выражении E1 XOR E2 возвращает TRUE, если только E1 = TRUE или только E2 = TRUE, иначе — FALSE; EQV — эквивалентность двух выражений, возвращает TRUE, если они имеют одинаковое значение; IMP — импликация, возвращает FALSE, если E1 = TRUE и E2 = FALSE, иначе — TRUE. Почти в любой программе VBA используются операторы конкатенации. В VBA их два: + или &. Рекомендуется всегда использовать &, потому что: -при использовании & производится автоматическое преобразование числовых значений в строковые — нет опасности допустить ошибку; -при использовании оператора + сложение строкового значения со значением типа Null дает Null. Пример: MsgBox "Сообщение пользователю" & vUserName Порядок применения операторов можно регулировать при помощи круглых скобок. Операторы условного и безусловного перехода Общий принцип их работы прост: проверяется соответствие каким-то условиям (истинность или ложность каких-либо выражений) и в зависимости от этого выполнение программы направляется по одной или другой ветви. В VBA предусмотрено 3 оператора условного перехода: If… Then... Else, Select Case и оператор IIF. Операторы ввода-вывода Для организации ввода/вывода можно использовать диалоговые окна. Наиболее часто в программах VBA встречаются две разновидности диалоговых окон: окна сообщений и окна ввода. Например: MsgBox(“Выполнено”) Например: A = InputBox(“Введите значение А=”)
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|