MyTetra Share
Делитесь знаниями!
Правила присвоения имен в языке Visual Basic
16.03.2019
23:43
Текстовые метки: const, CreateObject, dim, GetObject, let, Private, Property, Public, ReDim, Static, VBA, присвоениеимени
Раздел: !Закладки - VBA

Правила присвоения имен в языке Visual Basic


При присвоении имен процедурам, константам, переменным, и аргументам в модулеVisual Basic используются следующие правила:

Имена должны начинаться с буквы.

Имя не может содержать пробел, точку (.), восклицательный знак (!) или символы @, &, $, #.

Имена не должны содержать более 255 символов.

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

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

Примечание. В языке Visual Basic не различаются строчные и прописные буквы, однако в инструкции описания сохраняются прописные буквы.

Работа с приложениями

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

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

‘ Запуск Microsoft Excel и создание нового листа.

Set ExcelWorksheet = CreateObject(“Excel.Sheet”)

‘ Запуск Microsoft Excel и открытие существующего листа.

Set ExcelWorksheet = GetObject(“SHEET1.XLS”)

‘ Запуск Microsoft Word.

Set WordBasic = CreateObject(“Word.Basic”)

Большинство приложений предоставляют также методы Exit или Quit, которые закрывают приложение, независимо от того отображается оно на экране или нет. Дополнительные сведения по объектам, методам и свойствам, предоставляемым приложением содержатся в документации по приложению.

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

Dim X As New Field

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

Процедура Function

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

В следующем примере функция Celsius пересчитывает градусы Фаренгейта в градусы Цельсия. Когда функция вызывается процедурой Main, переменная, содержащая значение аргумента, передается функции. Результат вычислений возвращается вызывающей процедуре и выводится в окно сообщения.

Sub Main()

temp = Application.InputBox(Prompt:= _

“Введите температуру в градусах Фаренгейта.”, Type:=1)

MsgBox “Температура равна ” & Celsius(temp) & ” градусов Цельсия.”

End Sub

Function Celsius(fDegrees)

Celsius = (fDegrees – 32) * 5 / 9

End Function

Процедура Property

Процедура Property представляет собой последовательность инструкций языка Visual Basic, которые позволяют программисту создавать собственные свойства и оперировать с ними.

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

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

В отличие от переменных Public процедуры Property могут иметь справочные строки, присвоенные им в окне Просмотр объектов.

Когда создается процедура Property, она становится свойством модуля, содержащего эту процедуру. В языке Visual Basic имеются три следующих типа процедур Property:

Процедура

Описание

Property Let

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

Property Get

Возвращает значение свойства.

Property Set

Задает ссылку на объект.

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

[Public | Private] [Static] Property имя_свойства_ [(список_аргументов)] [As тип]

инструкции

End Property

Процедуры Property обычно используются попарно: Property Let с Property Get и Property Set с Property Get. Описание одной процедуры Property Get подобно описанию свойства, доступного только для чтения. Использование всех трех процедур Property вместе полезно только для переменных Variant, так как только могут содержать как объект, так и другую информацию о типах данных. В отличие от Property Let процедура Property Set предназначена для работы с объектами.

Обязательные аргументы описания процедур Property представлены в следующей таблице:

Процедура

Синтаксис описания

Property Get

Property Get имя(1, :, n) As тип

Property Let

Property Let имя(1, :,,,, n, n+1)

Property Set

Property Set имя(1, :, n, n+1)

Первый аргумент и все следующие вплоть до последнего (1, :, n) должны иметь одно и то же имя и тип данных во всех одноименных процедурах Property.

Описание процедуры Property Get имеет на один аргумент меньше, чем связанные описания Property Let и Property Set. Тип данных процедуры Property Get должен быть тем же самым, что и тип последнего аргумента (n+1) в связанных описаниях Property Let и Property Set. Например, если описывается следующая процедура Property Let, в описании Property Get должны использоваться аргументы с тем же самым именем и типом данных, как аргументы в процедуре Property Let.

Property Let Names(intX As Integer, intY As Integer, varZ As Variant)

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

End Property

Property Get Names(intX As Integer, intY As Integer) As Variant

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

End Property

Тип данных последнего аргумента в описании Property Set должен быть или объектным типом или Variant.

Процедура Sub

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

В следующей процедуре Sub содержатся комментарии, объясняющие каждую строк.

‘ Описывает процедуру с именем GetInfo

‘ Эта процедура Sub не имеет аргументов

Sub GetInfo()

‘ Описывает строковую переменную с именем answer

Dim answer As String

‘ Присваивает переменой answer возвращаемое значение функции

answer = InputBox(Prompt:=”Как Ваше имя?”)

‘ Условная инструкция If…Then…Else

If answer = Empty Then

‘ Вызов функции MsgBox

MsgBox Prompt:=”Введите имя.”

Else

‘ Функция MsgBox объединена с переменной answer

MsgBox Prompt:=”Имя переменной ” & answer

‘ Завершает инструкцию If…Then…Else

End If

‘ Завершает процедуру Sub

End Sub

Инструкции присвоения

Инструкции присвоения присваивают выражение переменной или константе. Инструкции присвоения всегда включают знак равенства (=). В следующем примере переменной yourName присваивается возвращаемое значение функции InputBox.

Sub Question()

Dim yourName As String

yourName = InputBox(“Как Ваше имя?”)

MsgBox “Ваше имя – ” & yourName

End Sub

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

Let yourName = InputBox(“Как Ваше имя?”).

Для присвоения объекта переменной, описанной как объект, применяется инструкция Set. Ключевое слово Set обязательно. В следующем примере инструкция Set присваивает диапазон на листе Sheet1 объектной переменной myCell:

Sub ApplyFormat()

Dim myCell As Range

Set myCell = Worksheets(“Sheet1″).Range(“A1″)

With myCell.Font

.Bold = True

.Italic = True

End With

End Sub

Инструкции, задающие значение свойства также являются инструкциями присвоения. В следующем примере задается свойство Bold объекта Font для активной ячейки:

ActiveCell.Font.Bold = True

Инструкции описания

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

Следующий пример содержит три описания.

Sub ApplyFormat()

Const limit As Integer = 33

Dim myCell As Range

‘ Другие инструкции

End Sub

Инструкция Sub (с парной ей инструкцией End Sub) описывает процедуру с именем ApplyFormat. Все инструкции, заключенные между Sub и End Sub выполняются всегда, когда вызывается или выполняется процедура ApplyFormat.

Процедура Sub

Инструкция Const описывает константу limit, задавая ей тип данных Integer и значение 33.

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

Инструкция Dim описывает переменную myCell. Тип данных объектный, в данном случае это объект Microsoft Excel Range. Переменную можно описать как объект, представленный в текущем приложении. Инструкции Dim относятся к типу инструкций, используемых для описания переменных. Другие ключевые слова, используемые для описания, – это ReDim, Static, Public, Private, и Const.

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

Исполняемые инструкции

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

В следующем примере используется инструкция For Each…Next для итераций по всем ячейкам диапазона с именем MyRange на листе Sheet1 текущей книги Microsoft Excel. Переменная c представляет собой ячейку в семействе ячеек, содержащемся в MyRange.

Sub ApplyFormat()

Const limit As Integer = 33

For Each c In Worksheets(“Sheet1″).Range(“MyRange”).Cells

If c.Value > limit Then

With c.Font

.Bold = True

.Italic = True

End With

End If

Next c

MsgBox “Все сделано!”

End Sub

Инструкция If…Then…Else в этом примере проверяет значение ячейки. Если значение больше 33, инструкция With задает свойства Bold и Italic объекту Font для этой ячейки. Инструкция If…Then…Else завершается инструкцией End If.

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

Инструкция Next вызывает следующую ячейку семейства, содержащегося в MyRange.

Функция MsgBox (которая отображает встроенное окно диалога Visual Basic) выводит на экран сообщение о том, что выполнение процедуры Sub закончилось.

Опубликовано в рубрике VBA, Новости Метки: const, CreateObject, dim, GetObject, let, Private, Property, Public, ReDim, Static, VBA, присвоениеимени

Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования