Лекции VBA. Можно выделить следующие разновидности макросов
Скачать 314.53 Kb.
|
Изменение размерности динамического массиваМогут сложиться обстоятельства, при которых точно неизвестно, сколько элементов потребуется в массиве. В VBA имеется возможность при помощи оператора ReDim переопределять размерность массива, а во время объявления не указывать его размерность. Синтаксис ReDim: ReDim [Preserve] varname(subscripts) [As Type] [, varname(subscripts) [As Type]] varname - имя существующего массива; subscripts - размерность существующего массива; Type - любой тип VBA. Необходимо использовать отдельный оператор As Type для каждого массива, который определяется; Preserve - необязательный аргумент. Его использование приводит к тому, что данные уже имеющиеся в массиве, сохраняются после изменения его размерности. Примеры правильного использования оператора ReDim: Dim Array_Month() As String - одномерный строковый динамический массив ReDim Array_Month(29) - устанавливет размерность динамического массива равную 29 элементам ReDim Array_Month(1 To 30) - изменяет размер массива до 30 элемента ReDim Preserve Array_Month(1 To 31) - изменяет размер массива до 31 элемента, сохраняя содержимое Dim Array_DBL() As Single - объявляет динамический массив ReDim Array_DBL(2, 9) - делает массив двумерным ReDim Array_DBL(3, 7) - изменяет размер двумерного массива ReDim Preserve Array_DBL(1 To 3, 1 To 5) - изменяет последний размер массива, сохраняя содержимое ВАЖНО Можно изменять только последнее измерение многомерного массива, когда используется ключевое слово Preserve. Объекты и коллекцииVBA является идеальным инструментом для изучения основ объектно- ориентированного программирования, так как имеет встроенные объекты (рабочие книги и листы, ячейки, документы и выделенные фрагменты текста), их свойства и методы. Объектно-ориентированное приложение организует данные и выполняемые операторы программного кода в связанные объекты, что облегчает разработку, организацию и работу со сложными структурами данных и действиями, выполняемыми над этими данными (или с ними). Каждый объект в программном приложении содержит данные и операторы, связанные вместе и образующие единый элемент. Большинство приложений содержат много различных типов объектов. В Excel объектами являются рабочие книги, листы, диапазоны данных, таблицы, графические объекты, диалоговые окна и само приложение Excel. Как и объекты реального мира, объекты VBA имеют различные присущие им качества или свойства (properties). Объекты в Excel имеют свойства, определяющие их вид и поведение: рабочий лист Excel может быть видимым или нет, строки в рабочем листе или таблице имеют свойство высоты, столбцы имеют свойство ширины и так далее. Свойства регулируют вид и поведение объекта. Чтобы изменить вид и поведение объекта, необходимо изменить его свойства. В Excel можно изменить поведение рабочего листа, изменяя свойство вычисления с автоматического на ручное, или можно изменить вид рабочего листа, задав новый цвет для текста или графики в листе. Чтобы узнать о текущем виде и поведении объекта, необходимо узнать о его свойствах. Вы можете определить диск, папку и имя рабочей книги Excel рассмотрев свойство FullName этой рабочей книги или документа. Некоторые свойства объекта можно изменять, некоторые — нет. Например, в рабочей книге Excel можно изменить имя автора книги, изменяя свойство Author, но нельзя изменить свойство Name рабочей книги. (Свойство Name рабочей книги содержит имя файла на диске и не может быть изменено без создания нового дискового файла или переименования файла рабочей книги вне Excel). Некоторые объекты имеют свойства с одними и теми же или подобными именами: объекты Application, Workbook и Worksheet в Excel — все имеют свойство Name. Каждый объект рабочего листа сохраняет данные для своих свойств внутри самого рабочего листа вместе с пользовательскими данными. [Пользовательские данные (user data) — это любые данные, сохраняемые объектом, которые поступают непосредственно от пользователя подобно данным, содержащимся в ячейках рабочего листа.] Объекты реального мира почти всегда имеют тот тип присущего им поведения или действия, который они могут выполнить. Объекты VBA также имеют поведение и возможности, называемые методами (methods). Объект рабочей книги Excel, например, имеет встроенную способность добавлять к себе новый рабочий лист — метод добавления рабочих листов (называемый Add). Другой пример: документ Word имеет встроенную способность проверять орфографию текста в документе — метод проверки орфографии (называемый, как вы могли догадаться, CheckSpelling). Методы изменяют значения свойств объектов; методы выполняют также действия с данными (или над данными), сохраняемыми объектом. Методы во многом похожи на процедуры VBA, с которыми вы уже знакомы, но связаны с объектом; к методам объекта можно обратиться, только используя объект. Это может казаться сложным, но на деле все проще. Для вызова метода объекта (функции обработки данных объекта) указывается не только наименование метода, но и объект (имя), которому принадлежит метод. Одной из причин того, что объектно-ориентированное программирование стало популярной техникой проектирования, является то, что оно позволяет разработчикам программного обеспечения создавать более эффективные программы с совместно используемым кодом. Вместо сохранения отдельной копии кода для каждого метода каждого объекта VBA-объекты одного и того же типа совместно используют код своих методов. Несмотря на то, что объекты одного и того же типа совместно используют код для своих методов, метод считается частью объекта; когда вы вызываете определенный метод для конкретного объекта, метод воздействует только на объект, посредством которого вы обращаетесь к этому методу. После того как объект создан (если это — не встроенный объект), нет необходимости беспокоиться о том, как работают его методы и как объект сохраняет или манипулирует данными. Все, что нужно знать, — как указать объект и как указать метод, который необходимо использовать (или определенное свойство, которое нужно выбрать и изменить). Встроенный код для объекта VBA выполняет остальную работу автоматически. Операторы программ VBA, использующие объекты, обычно выполняют одно или несколько из следующих действий: определяют текущее состояние или статус объекта путем выборки значения, сохраняемого в определенном свойстве; изменяют состояние или статус объекта установкой значения, сохраненного в определенном свойстве; используют один из методов объекта, обеспечивая выполнение объектом одной из его встроенных задач. Например, можно определить имя активного в данный момент рабочего листа в Excel, выполняя выборку строки, сохраняемой в свойстве Name рабочего листа. (Свойство Name рабочего листа содержит имя рабочего листа, как показано на ярлычке листа.) Чтобы изменить имя рабочего листа, необходимо присвоить новую строку свойству Name этого рабочего листа. Для добавления рабочего листа в рабочую книгу используется метод Add рабочей книги. Прежде чем применять свойства и методы некоторого объекта, их следует сначала определить. В операторах VBA используется следующий общий синтаксис для определения свойства или метода объекта: <Имя обьекта>.<свойство или метод> В таблице 1 приведены несколько из наиболее важных объектов (с точки зрения программиста VBA) в Excel. В таблице показано имя объекта и краткое описание этого объекта. (Excel содержит намного больше объектов, чем перечислено в табл 1.) Таблица 1
|