Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA-Laboratorny_praktikum.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
4.56 Mб
Скачать

4.Переменные

Примеры использования переменных присутствуют во всех программах данного практикума. Здесь же мы познакомимся поближе с объектными переменными и переменными пользовательского типа.

4.1.Объектные переменные

Как вы знаете, объектная переменная используется для ссылки на объект. Они объявляются и задаются немного иначе, чем остальные переменные. Ниже представлен фрагменте кода, в котором объектная переменная сначала объявляется, а затем ей присваивается значение: Range1- это первая ячейка первого листа.

Dim Range1 As Object

Set Range1 = Worksheets(1).Range("A1")

Предположим, что в программе Оформление из параграфа 3.3 (стр. 29) нам необходимо указывать «полный» адрес диапазона ячеек A1:A10. Очевидно, что программа окажется перегруженной и трудной для восприятия.

Sub ОформлениеПолнаяСсылка()

Workbooks("Случайные числа.xls"). _

WorkSheets("Случ. числа").Range("A1:A10").Font.Italic = True

With Workbooks("Случайные числа.xls"). _

WorkSheets("Случ. числа")Range("A1:A10"). _

Borders(xlEdgeLeft)

.LineStyle = xlDot

.ColorIndex = 5

End With

. . .

' на досуге можете ввести остальные команды! 

End Sub

Введя объектную переменную, мы существенно сократим программу, сделаем её простой и более наглядной. В следующем коде объектная переменная MyRange – это диапазон ячеек A1:A10, расположенный в книге Случайные числа.xls на листе Случ. числа:

Sub ОформлениеОбъектнаяПеременная()

Dim MyRange As Object

Set MyRange = Workbooks("Случайные числа.xls"). _

WorkSheets("Случ. числа").Range("A1:A10")

MyRange.Font.Italic = True

With MyRange.Borders(xlEdgeLeft)

.LineStyle = xlDot

.ColorIndex = 5

End With

With MyRange.Borders(xlEdgeTop)

.LineStyle = xlDot

.ColorIndex = 5

End With

With MyRange.Borders(xlEdgeBottom)

.LineStyle = xlDot

.ColorIndex = 5

End With

With MyRange.Borders(xlEdgeRight)

.LineStyle = xlDot

.ColorIndex = 5

End With

With MyRange.Borders(xlInsideHorizontal)

.LineStyle = xlDot

.ColorIndex = 5

End With

Range("A1").Select

End Sub

Задания:

  1. В Модуль3 наберите программу ОформлениеОбъектнаяПеременная.

  2. На листе Случ. числа очистите форматы, активизируйте другую книгу и запустите программу ОформлениеОбъектнаяПеременная.

4.2.Пользовательский тип данных

Теперь создадим пользовательский тип данных Персона. Пользовательские типы данных определяются как комбинации стандартных типов данных VBA. Главным достоинством переменной пользовательского типа является то, что в неё можно помещать несколько значений различных типов. Это особенно выигрышно при создании пользовательских массивов, так как в обычном массиве могут использоваться элементы только одного типа.

В Модуль3 наберите следующий код и выполните программу:

Type Персона

Имя As String

ДатаРождения As Date

Возраст As Integer

End Type

Sub ПользовательскийТипПеременной()

Dim User1 As Персона

User1.Имя = "Иванов"

User1.ДатаРождения = #2/23/75#

User1.Возраст = Year(Date) - Year(User1.ДатаРождения)

MsgBox User1. Имя & ", возраст " & User1.Возраст & _

" дата рождения " & User1.ДатаРождения

End Sub

Обратите внимание на встроенные функции Date, которая возвращает текущую системную дату и Year, которая возвращает год из указанной даты. Первый раз год возвращается из текущей даты, которую определяет функция Date, второй раз – из даты рождения (третьего элемента пользовательского типа), которая объявлена как Date.

Задание:

  1. В Модуль3 напишите программу Данные_Сотрудника, которая, по запросу пользователя, выводит на экран данные о сотруднике (Ф.И.О., Кафедра, Должность, Возраст). Информация хранится в базе данных Excel C:\St\Институт.xls на листе Кадры и имеет следующую структуру:

    1. Диалог программы с пользователем осуществляется с помощью встроенной функции InputBox:

  • сначала запрашивается название кафедры:

  • затем Ф.И.О.:

    1. Выходные данные выводятся с помощью MsgBox в следующем виде:

    1. При написании кода создайте пользовательский тип данных Сотрудник, элементами которого являются Имя, Должность, Возраст.

    2. Предусмотреть обработку событий, связанных с различными состояниями исходной БД: закрыта, открыта, не существует.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]