Основы офисного программирования и язык VBA


Записи и тип, определенный программистом - часть 2


Такая терминология общепринята и соответствует программистской традиции.

Синтаксис определения типа в VBA достаточно прозрачен:

[Private | Public] Type <имя типа> <имя элемента> [([<размерность массива>])] As <тип элемента> [<имя элемента> [([<размерность массива>])] As <тип элемента>] ... End Type

Определение типа дается на уровне модуля и, если оно является закрытым (Private), распространяется на один модуль, а для общих (Public) типов - на все. Мы ограничимся довольно стандартным примером, в котором определяются два типа (записи): Fam и Person, где одно из полей Person имеет тип Fam.

'Определение записей - пользовательских типов Type Fam firstName As String lastName As String End Type

Type Person Fio As Fam Birthdate As Date End Type

Эти объявления мы поместили в раздел объявлений модуля Father. Вот одна из его процедур, использующих эти типы данных:

Public Sub UserType() Dim Петров As Person Dim Козлов As Person Петров.Fio.firstName = "Петр" Петров.Fio.lastName = "Петров" Петров.Birthdate = #1/23/1961# Козлов.Fio.firstName = Петров.Fio.firstName Козлов.Fio.lastName = "Козлов" Козлов.Birthdate = #7/21/1966# MsgBox (Петров.Fio.firstName & " " & Петров.Fio.lastName _ & " родился " & Петров.Birthdate) MsgBox (Козлов.Fio.firstName & " " & Козлов.Fio.lastName _ & " родился " & Козлов.Birthdate) End Sub

Вот что будет напечатано в результате ее работы:

Петр Петров родился 23.01.61 Петр Козлов родился 21.07.66

VBA старается помочь при работе с записями, предоставляя возможность выбора полей записи из открывающегося списка. Пусть Вас не смущает форма записи дат рождения - при определении константы для дат можно задавать в более человечной форме. Например, здесь мы задавали их как #January 23, 1961# и #21 July, 66#, - они автоматически были преобразованы в формальный вид.




Начало  Назад  Вперед