Современные решения

для защиты Windows приложений

и восстановления исходного кода

Описание массивов Visual Basic


Как и другие переменные, массивы описываются с помощью инструкций Dim, Static, Private или Public. Разница между скалярными переменными (т.е. не массивами) и массивами состоит в том, что для последних надо указывать размер массива. Массив с заданным размером называется массивом фиксированного размера. Массив с переменным размером называется динамическим.

Начало индексации массива с 0 или 1 определяется параметрами инструкции Option Base. Если не указано Option Base 1, нижняя граница индексов массива равняется нулю.

Описание массива фиксированного размера

В следующей строке программы массив фиксированного размера описывается как массив типа Integer, имеющий 11 строк и 11 столбцов:

Dim MyArray(10, 10) As Integer

Первый аргумент представляет строки, а второй - столбцы.

Как и при описании других переменных, если тип данных при описании массива не задается, подразумевается, что элементы массива имеют тип Variant. На каждый элемент массива типа Variant отводится 16 байт. Строковый элемент типа Variant занимает 22 байта. Для написания максимально компактной программы следует явно описывать массивы как принадлежащие к типу данных, отличному от Variant. В следующих строках программы сравниваются размерности нескольких массивов:

' Массив Integer занимает 22 байта (11 элементов * 2 байта).

ReDim MyIntegerArray(10) As Integer

' Массив Double-precision занимает 88 байт (11 элементов * 8 байт).

ReDim MyDoubleArray(10) As Double

' Массив Variant занимает не менее 176 байт (11 элементов * 16 байт).

ReDim MyVariantArray(10)

' Массив Integer занимает 100 * 100 * 2 байт (20,000 байт).

ReDim MyIntegerArray (99, 99) As Integer

' Массив Double-precision занимает 100 * 100 * 8 байт (80,000 байт).

ReDim MyDoubleArray (99, 99) As Double

' Массив Variant занимает не менее 160,000 байт (100 * 100 * 16 байт).

ReDim MyVariantArray(99, 99)

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

Описание динамического массива

Если массив описан как динамический, можно изменять его размер во время работы программы. Для описания динамического массива используются инструкции Static, Dim, Private, или Public с пустыми скобками, как показано в следующем примере.

Dim sngArray() As Single

Примечание. Можно воспользоваться инструкцией ReDim для неявного описания массива внутри процедуры. При этом надо точно задавать имя массива. В случае опечатки, даже если в модуле есть инструкция Option Explicit, будет создан второй массив.

В процедуре внутри области определения массива используется инструкция ReDim для изменения числа размерностей, определения числа элементов и задания верхних и нижних границ индексов для каждой размерности. Инструкцию ReDim можно применять для изменения динамического массива столько раз, сколько потребуется. Однако при каждом применении данные, содержащиеся в массиве, теряются. Инструкция ReDim Preserve увеличивает размер массива, сохраняя при этом его содержимое. В следующем примере показывается, как можно увеличить массив varArray на 10 элементов без уничтожения текущих значений элементов массива.

ReDim Preserve varArray(UBound(varArray) + 10)

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

Описание констант

При описании константы ей можно присвоить значащее имя. Инструкция Const используется для описания константы и определения ее значения. После описания константу нельзя модифицировать и нельзя присваивать ей новое значение.

Константа описывается в процедуре или в начале модуля, в разделе описаний. Константы уровня модуля по умолчанию являются личными. При описании общих констант уровня модуля инструкции Const должно предшествовать ключевое слово Public. Для явного описания личных констант перед инструкцией Const надо поставить ключевое слово Private. Это облегчает чтение и отладку программы. Дополнительные сведения содержатся в разделе "Область определения и видимость" справочника Visual Basic.

В следующем примере константа Public conAge описывается как Integer, и ей присваивается значение 34.

Public Const conAge As Integer = 34

Константы могут быть описаны одним из следующих типов данных: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String, или Variant. Поскольку значение константы уже известно, можно задать тип данных в инструкции Const. Дополнительные сведения содержатся в разделе "Типы данных" справочника Visual Basic.

Допускается также описание нескольких констант в одной строке. В этом случае, чтобы задать тип данных, надо указать определенный тип для каждой константы. В следующем примере константы conAge и conWage описываются как Integer.

Const conAge As Integer = 34, conWage As Currency = 35000

Описание переменных

При описании переменных обычно используется инструкция Dim. Для создания переменной на уровне процедуры инструкция описания помещается внутри процедуры. Чтобы создать переменную на уровне модуля, инструкция описания располагается в начале модуля, в разделе описаний.

В следующем примере создается переменная strName и задается тип данных String.

Dim strName As String

Когда эта инструкция располагается в процедуре, переменная strName может использоваться только в данной процедуре. Если же такая инструкция находится в разделе описаний модуля, то переменная strName доступна для всех процедур данного модуля, но не может использоваться процедурами из других модулей проекта. Чтобы сделать переменную доступной для всех процедур проекта, перед ней надо поставить инструкцию Public, как показано в следующем примере:

Public strName As String

Дополнительные сведения о присвоения имен переменным содержатся в разделе справочника Visual Basic "Правила присвоения имен в языке Visual Basic".

Переменные могут описываться как один из следующих типов данных: Boolean, Byte, Integer, Long, Currency, Single, Double, Date, String (для строк переменной длины), String * длина (для строк фиксированной длины), Object, или Variant. Если тип данных не задан, по умолчанию переменная приобретает тип Variant. Имеется также возможность создать определяемый пользователем тип данных с помощью инструкции Type. Дополнительная информация о типах данных содержится в разделе справочника Visual Basic "Типы данных".

Допускается также описание нескольких переменных в одной строке. В этом случае, чтобы задать тип данных, надо указать определенный тип для каждой переменной. В следующем примере переменные intX, intY, и intZ описываются как Integer.

Dim intX As Integer, intY As Integer, intZ As Integer

В следующей строке intX и intY описываются как Variant; и только intZ описывается как Integer.

Dim intX, intY, intZ As Integer

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

Инструкция Public

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

Public strName As String

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

Инструкция Private

Инструкция Private используется для описания личных переменных уровня модуля.

Private MyName As String

Личные переменные доступны только для процедур одного и того же модуля.

Примечание. На уровне модуля инструкция Dim эквивалентна инструкции Private. Использование инструкции Private может упростить чтение и отладку программы.

Инструкция Static

Переменные, описанные с помощью инструкции Static вместо инструкции Dim, сохраняют свои значения при выполнении программы.

Инструкция Option Explicit

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

Если неявные описания нежелательны, инструкция Option Explicit должна предшествовать в модуле всем процедурам. Эта инструкция налагает требование явного описания всех переменных этого модуля. Если модуль содержит инструкцию Option Explicit, при попытке использования неописанного или неверно введенного имени переменной возникает ошибка во время компиляции.

В программной среде Visual Basic имеется возможность установить параметр, автоматически включающий инструкцию Option Explicit во все новые модули. В документации приложения содержатся справочные сведения по изменению параметров среды Visual Basic. Следует отметить, что этот параметр не изменяет текст программы пользователя.

Примечание. Явное описание динамических массивов и массивов с фиксированной размерностью обязательно.

Описание объектной переменной для программирования объектов

Когда приложение используется для управления объектами из другого приложения, необходимо создать ссылку на библиотеку типов второго приложения. Когда ссылка определена, имеется возможность описать объектные переменные с наиболее подходящим для них типом. Например, если при работе в Microsoft Access определяется ссылка на библиотеку типов Microsoft Excel, то внутри Microsoft Access можно описать переменную типа Worksheet, чтобы она представляла объект Worksheet Microsoft Excel.

Если для управления объектами Microsoft Access используется другое приложение, то, как правило, объектные переменные описываются с наиболее подходящим для них типом. Возможно также использование ключевого слова New для автоматического создания нового экземпляра объекта. Однако необходимо указать, что это объект Microsoft Access. Например, если описывается объектная переменная, представляющая форму Microsoft Access внутри Microsoft Visual Basic, необходимо различать объект Form Microsoft Access и объект Form Visual Basic . Имя библиотеки типов включается в описание переменной, как показано в следующем примере:

Dim frmOrders As New Access.Form

Некоторые приложения не распознают отдельные объектные типы Microsoft Access. Даже если в этих приложениях создана ссылка на библиотеку типов Microsoft Access, необходимо описать все объектные переменные Microsoft Access с типом Object. В этом случае ключевое слово New также не может использоваться для создания нового экземпляра объекта. В следующем примере показано, как в таком приложении надо описывать переменную, чтобы она представляла экземпляр объекта Application Microsoft Access. Затем приложение создает экземпляр объекта Application.

Dim appAccess As Object

Set appAccess = CreateObject("Access.Application")

Синтаксис, поддерживаемый приложением, описан в документации по приложению.

Выполнение программы с установкой свойств

Допускается создание процедур Property Let, Property Set и Property Get с одним и тем же именем. Таким образом создается группа связанных процедур, работающих совместно. Имя, данное процедуре Property, не может использоваться в качестве имени процедур Sub и Function, переменой или определяемого пользователем типа данных.

Инструкция Property Let позволяет создать процедуру, которая задает значение свойства. Примером может служить процедура Property, которая создает свойство инвертирования точечного рисунка в форме. Ниже представлен синтаксис вызова процедуры Property Let:

Form1.Inverted = True

Реальная работа по инвертированию точечного рисунка в форме выполняется в процедуре Property Let:

Private IsInverted As Boolean

Property Let Inverted(X As Boolean)

IsInverted = X

If IsInverted Then

:

(statements)

Else

(statements)

End If

End Property

Переменная уровня формы IsInverted содержит значение этого свойства. Если она описана как Private, пользователь может изменить ее только с помощью процедуры Property Let. Рекомендуется использовать имя, которое облегчает понимание того, что переменная использована для этого свойства.

Процедура Property Get свойства Inverted:

Property Get Inverted() As Boolean

Inverted = IsInverted

End Property

Процедуры-свойства упрощают выполнение программы одновременно с присвоением значения свойства. Они могут использоваться для выполнения следующих операций:

Определение значения свойства до того, как оно присвоено.

Присвоение свойства на основе нового значения.

Циклы в программе

Использование условных инструкций и инструкций цикла, называемых также управляющими структурами, позволяет написать программу на языке Visual Basic, которая будет принимать решения и повторять операции. Другая полезная управляющая структура - инструкция With, позволяет выполнить последовательность инструкций, не повторяя задание имени объекта.

Использование условных инструкций

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

Выбор условной инструкции

If...Then...Else: ветвление программы в зависимости от значения условия True или False

Select Case: выбор ветви из набора условий

Использование циклов для повторения блоков программы

Использование циклов дает возможность повторного выполнения набора инструкций. Некоторые циклы повторяют инструкции пока условие имеет значение False; другие - пока значение условия равно True. Имеются также циклы, которые повторяют набор инструкций определенное число раз или же выполняют его для каждого объекта семейства.

Типы циклов

Do...Loop: повторяет набор инструкций, пока условие имеет значение True или пока оно не примет значение True

For...Next: использует счетчик. Повторяет набор инструкций указанное число раз.

For Each...Next: повторяет набор инструкций для каждого объекта семейства

Выполнение нескольких инструкций над одиночным объектом

В Visual Basic, как правило, требуется указать объект перед выполнением одного из его методов или изменением одного из его свойств. С помощью инструкции With можно указать объект только один раз для последовательности инструкций.

With: выполняет последовательность инструкций над одиночным объектом

Оптимизация циклов For...Next

Переменные целого типа занимают меньше памяти, чем переменные с типом данных Variant и их обновление выполняется немного быстрее. Однако, это отличие становится заметным только при выполнении многих тысяч операций. Например:

Dim CountFaster As Integer' В первом случае используем Integer.

For CountFaster = 0 to 32766

Next CountFaster

Dim CountSlower As Variant' Во втором случае используем Variant.

For CountSlower = 0 to 32766

Next CountSlower

В первом случае требуется немного меньше времени для выполнения, чем во втором. Однако, если значение CountFaster превышает 32767, возникает ошибка. Для устранения этой ошибки можно изменить тип данных CountFaster на тип данных Long, который допускает больший диапазон целых чисел. Вообще говоря, чем меньше значения какого-либо типа данных, тем меньше времени требуется для их обновления. Обновление для значений типа Variant выполняется немного медленнее, чем для значений соответствующего им типа данных.

Эффективная передача аргументов

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

Если включить ключевое слово ByVal в описание процедуры, то аргумент будет передан по значению. Аргументы, переданные по значению, занимают от 2 до 16 байт на процедуру, в зависимости от типа данных аргументов. Типы данных большего размера требуют на передачу немного больше времени. По этой причине обычно не следует передавать по значению типы данных String и Variant.

При передаче аргумента по значению создается копия исходной переменной. Изменения аргумента в процедуре не распространяются на значение исходной переменной. Например:

Function Factorial (ByVal MyVar As Integer)' Описание функции.

MyVar = MyVar - 1

If MyVar = 0 Then

Factorial = 1

Exit Function

End If

Factorial = Factorial(MyVar) * (MyVar + 1)

End Function

' Вызов функции Factorial с переменной S.

S = 5

Print Factorial(S)' Выводит на экран 120 (факториал 5).

Print S' Выводит на экран 5.

Без ключевого слова ByVal в описании функции приведенные выше инструкции Print выводят на экран 1 и 0. Причина заключается в том, что MyVar ссылается затем на переменную S, которая уменьшается на 1 до тех пор, пока не станет равной 0.

Поскольку ByVal создает копию аргумента, она позволяет передавать в функцию Factorial значение типа Variant. Невозможна передача по ссылке значений типа Variant если процедура, описывающая аргумент, использует другой тип данных.

Возвращение строк из функций

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

Версия, возвращающая тип String, может быть полезна в следующих случаях:

Программа имеет большой размер и использует очень много переменных.

Выполняется прямая запись данных в файлы с произвольным доступом.

Следующие функции возвращают значения типа String, если к имени функции добавляется символ доллара ($). Эти функции имеют такое же применение и синтаксис, как и их эквиваленты без символа доллара, возвращающие тип Variant.

Chr$

ChrB$

*Command$

CurDir$

Date$

Dir$

Error$

Format$

Hex$

Input$

InputB$

LCase$

Left$

LeftB$

LTrim$

Mid$

MidB$

Oct$

Right$

RightB$

RTrim$

Space$

Str$

String$

Time$

Trim$

Ucase$

* Функция доступна не во всех приложениях.

Условная компиляция

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

При помощи директивы #Const в программе определяется условная константа компилятора, а директива #If...Then...#Else служит для указания на блок программы, предназначенный для условной компиляции. В следующем примере в зависимости от значения переменной соnDebug программа выполняется с инструкциями отладки или без них.

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

#Const conDebug = 1

Sub SelectiveExecution()

#If conDebug = 1 Then

.' Выполняет программу с инструкциями отладки.

.

.

#Else

.' Выполняет обычную программу.

.

.

#End If

End Sub

Время жизни переменных

Временем жизни переменной называется время, в течение которого переменная может иметь значение. Значение переменной может меняться на протяжении ее времени жизни, но в течение этого времени она обязательно имеет какое-либо. Когда переменная теряет область определения, она более не имеет значения.

В начале выполнения процедуры все переменные инициализируются. Числовая переменная получает значение 0, строка переменной длины получает значение пустой строки (""), а строка фиксированной длины заполняется ASCII символом 0 или Chr(0). Переменные типа Variant получают при инициализации значение Empty. Каждый элемент массива переменных с определяемым пользователем типом при инициализации получает значение, которое он получил бы, если бы являлся одиночной переменной.

При описании объектной переменной для нее выделяется память, но ее значение определяется как Nothing до тех пор, пока ей не присвоена ссылка на объект с помощью инструкции Set.

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

Переменная, описанная с помощью инструкции Dim на уровне процедуры, сохраняет значение до окончания выполнения процедуры. Если процедура вызывает другие процедуры, переменная сохраняет свое значение, пока не закончится выполнение и этих процедур.

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

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

Если перед инструкциями Sub или Function имеется ключевое слово Static, значения всех переменных уровня процедуры сохраняются между вызовами процедуры.

Именованные и аргументы Optional

При вызове процедур Sub или Function возможна позиционная передача аргументов, т.е. в порядке следования в описании процедуры. Кроме того, аргументы могут передаваться по именам, вне зависимости от позиции.

Например следующая процедура Sub имеет три аргумента:

Sub PassArgs(strName As String, intAge As Integer, dteBirth As Date)

Debug.Print strName, intAge, dteBirth

End Sub

Эту процедуру можно вызвать, передавая ее аргументы в соответствии с позициями и разделяя их запятой, как показано в следующем примере:

PassArgs "Маша", 26, #2-21-69#

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

PassArgs intAge:=26, dteBirth:=#2/21/69#, strName:="Маша"

Именованный аргумент состоит из имени аргумента, за которым следует двоеточие со знаком равенства (:=) и значение аргумента.

Именованные аргументы особенно полезны при вызове процедуры с необязательными аргументами (Optional). Если используются именованные аргументы, то запятые для обозначения отсутствующих позиционных аргументов не нужны. С помощью именованных аргументов проще проследить, какие аргументы переданы, а какие опущены.

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

Sub OptionalArgs(strState As String, Optional strCountry As String = "USA")

. . .

End Sub

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

В следующей процедуре имеется необязательный аргумент, переменная varCountry. Функция IsMissing определяет, был ли передан в процедуру необязательный аргумент.

Sub OptionalArgs(strState As String, Optional intRegion As Integer, _

Optional strCountry As String = "USA")

If IsMissing(intRegion) And IsMissing(strCountry) Then

Debug.Print strState

ElseIf IsMissing(strCountry) Then

Debug.Print strState, intRegion

ElseIf IsMissing(intRegion) Then

Debug.Print strState, strCountry

Else

Debug.Print strState, intRegion, strCountry

End If

End Sub

Эту процедуру можно вызвать с помощью именованного аргумента, как показано в следующих примерах.

OptionalArgs strCountry:="USA", strState:="MD"

OptionalArgs strState:= "MD", intRegion:=5

Объекты, свойства, методы и события

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

Семейство (объект Collection) представляет собой объект, содержащий несколько других объектов, как правило, одного и того же типа. Например, в Microsoft Excel объект Workbooks содержит все открытые объекты Workbook. В Visual Basic семейство Forms содержит все объекты Form приложения.

Элемент семейства может быть идентифицирован по номеру или по имени. Например, в следующей процедуре Workbooks(1) обозначает первый открытый объект Workbook.

Sub CloseFirst()

Workbooks(1).Close

End Sub

Следующая процедура использует имя, определенное как строка для указания на объект Form.

Sub CloseForm()

Forms("MyForm.frm").Close

End Sub

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

Sub CloseAll()

Forms.Close

End Sub

Метод представляет собой действие, выполняемое над объектом. Например, Add - метод объекта ComboBox, поскольку он добавляет новую запись в поле со списком.

В следующей процедуре для внесения нового элемента в объект ComboBox (поле со списком) используется метод Add.

Sub AddEntry(newEntry as String)

Combo1.Add newEntry

End Sub

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

Чтобы задать значение свойства, надо указать объект, через точку указать имя свойства, затем знак равенства (=) и новое значение свойства. Например, в следующей процедуре изменяется заголовок формы Visual Basic посредством задания свойства Caption.

Sub ChangeName(newTitle)

myForm.Caption = newTitle

End Sub

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

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

Sub GetFormName()

formName = Screen.ActiveForm.Caption

MsgBox formName

End Sub

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

Возвращение объектов

В любом приложении имеется способ возвращать объекты, которые оно содержит. Однако, поскольку эти способы отличаются, следует обращаться к разделу Справочника по данному объекту или семейству, чтобы узнать, как возвращать объект.

Программирование объектов

Программирование объектов (ранее программирование OLE ) является свойством модели COM (Component Object Model), стандартной технологии, которая используется приложениями, чтобы предоставить свои объекты в распоряжение средств разработки, макроязыков и других приложений, поддерживающих программирование объектов. Например, приложение для работы с электронными таблицами может предоставлять для использования лист, диаграмму, ячейку или диапазон ячеек в качестве различных типов объектов. Текстовой процессор может предоставлять для использования объекты типа приложений, документов, абзацев, предложений, закладок или выделенных фрагментов.

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

MyObj.Insert "Всем привет."' Размещает текст.

MyObj.Bold = True' Форматирует текст.

MyObj.SaveAs "C:\WORDPROC\DOCS\TESTOBJ.DOC"' Сохраняет объект.

Следующие функции позволяют получить доступ к программируемому объекту:

Функция

Описание

 

CreateObject

Создает новый объект указанного типа.

GetObject

Загружает объект из файла.

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

Назад | Содержание | Вперед