Dim i, n As Integer
Dim n1 As String
n = Val(InputBox("Введите количество абонентов"))
For i = 1 To n Step 1
With inf(i)
.fam = InputBox("Введите фамилию")
.name = InputBox("Введите имя")
.namber = Val(InputBox("Введите номер телефона"))
.adr = InputBox("Введите адрес")
End With
Next i
n1 = InputBox("Введите фамилию абонента")
For i = 1 To n Step 1
If n1 = inf(i).fam Then
MsgBox inf(i).fam & Chr(13) & _
inf(i).name & Chr(13) & _
inf(i).namber & Chr(13) & _
Inf(i).adr
End If
Next i
End Sub
№23 Иерархические объекты Visual Basic for Application в Microsoft Office Excel.
Существуют сотни самых разнообразных объектов VBA, многие из которых объединяются в семейства объектов.
Объект Application (объект "Приложение") Этот объект представляет собой само приложение Excel в целом. Он включает в себя глобальные устанавливаемые параметры, такие, например, как используемый стиль ссылок на ячейки или режим проведения вычислений. Кроме того, он включает в себя встроенные функции Excel.
Windows (семейство "Окна")Объекты этого семейства используются при свертке или развертке окна, разбиении его на части и фиксировании подокон. Принадлежащий к этому семейству объект ActiveWindow представляет собой активное в настоящий момент окно.
Workbooks (семейство "Рабочие книги") Объекты этого семейства определяют состояние рабочей книги, например: не является ли она доступной только для чтения; или какой из листов рабочей книги активен в настоящий момент. Принадлежащий к этому семейству объект ActiveWorkbook — это объект, который представляет собой активную в настоящий момент рабочую книгу.
Worksheets (семейство "Рабочие листы") Объекты этого семейства используются при копировании или удалении рабочих листов, их скрытии или показе, проведении вычислений для формул рабочего листа. Принадлежащий к этому семейству объект ActiveWorksheet - это объект, который представляет собой активный в настоящий момент рабочий лист.
Range (объект "Диапазон")Этот объект позволяет изменять свойства диапазона ячеек, например, используемый шрифт, проверять или изменять содержимое ячеек, вырезать или копировать указанный диапазон, и многое другое. Это наиболее часто используемый в Excel объект. Принадлежащий к этому же классу объектов объект ActiveCell - представляет собой активную в настоящий момент ячейку. Обратите внимание на то, что не существует такого объекта, какCell — отдельно взятая ячейка представляет собой частный случай объекта Range.
При ссылке на объект в программе иногда приходится для уточнения задавать все объекты, лежащие на иерархическом пути к нужному объекту, при этом имена объектов отделяются друг от друга точкой. Например, чтобы присвоить значение 1 первой ячейке первого листа первой рабочей книги Excel, можно использовать следующий оператор VBA:
Application.Workbooks(1).Worksheets(1).Range("A1").Value = 1
В этом примере используются не только простые объекты, а также объекты, являющиеся семействами (Collections) — Workbooks и Worksheets (во встроенной справке на иерархическом дереве объектов простые объекты окрашены бирюзовым цветом, а объекты, являющиеся также и семействами — желтым). В таком случае в скобках после имени семейства указывается имя или индекс конкретного элемента семейства.
Sub pr()
Dim s, s1, s2, s3, s4, s5, s6, s7, s8 As String
s = InputBox("Введите строку")
s1 = Right(s, 8)
s2 = Left(s, 7)
s3 = Mid(s, 10, 1)
s4 = s2 & s3
s5 = Mid(s, 4, 1)
s6 = Mid(s, 6, 2)
s7 = Mid(s, 10, 2)
s8 = s5 & s6 & s7
MsgBox s1 & Chr(13) & _
s4 & Chr(13) & _
S8
End Sub
№ 24 Свойства иерархических объектов Visual Basic for Application в Microsoft Office Excel.
В VBA, как и в реальной жизни, всякий объект обладает определенными свойствами (Properties), описывающими этот объект или его состояние. Свойства и методы предназначены для доступа к содержимому и функциональности объектов. Например, свойство Value объекта Range используется для просмотра значения в ячейке B3 на рабочем листе Sales из рабочей книги Current.xls: Workbooks("current.xls").Worksheet("sales").Range("B3").Value=3
Свойство Bold объекта Font позволяет изменить начертания шрифта в ячейке B3 рабочего листа Sales на полужирное: Workbooks("current.xls").Worksheet("sales").Range("B3").Font.Bold =true
Приведем еще один пример — в приложении Excel объект Range (диапазон ячеек рабочего листа) имеет такие свойства, как:
1.Font — используемый шрифт;
2.Formula — определяет содержимое ячейки или диапазона ячеек;
3.Value — определяет значение ячейки;
и многие, многие другие свойства.
При ссылке на свойство объекта используется тот же самый синтаксис, что и при уточнении иерархического соподчинения объектов. Сначала указывается объект, затем ставится точка, за которой следует свойство: объект.свойство
Например, для ссылки на значение активной ячейки используется следующая запись: ActiveCell.Value
Более всего новичка может запутать тот факт, что некоторые свойства объектов сами в свою очередь могут выступать в качестве объектов. Так, например, объект Application имеет свойство ActiveWindow, которое показывает, какое окно является активным в настоящий момент. В то же время ActiveWindow, как уже упоминалось, является объектом семейства Windows, который может иметь свойство ActiveCell, в свою очередь являющееся объектом класса Range. Далее, ActiveCell имеет свойство Font, также являющееся объектом, имеющим такие свойства, как Name,
Size или Bold. Таким образом, возникает иерархия свойств-объектов, аналогичная иерархии "чистых" объектов. При ссылке на свойства нижних уровней могут использоваться иерархические ссылки вроде следующей: ActiveWindow.ActiveCell.Font.Size
Обычно при обращении к свойству или объекту не требуется полностью задавать весь иерархический путь, часто годится действующий по умолчанию путь, а может использоваться и специальный оператор With для уточнения пути сразу для группы операторов. Свойства объектов Excel
Объект Application
1.ActiveWindow – Активное окно
2.ActiveWorkbook – Активная рабочая книга
3.ScreenUpdating – Режим обновления экрана (при выполнении процедуры для ускорения работы можно приостановить обновление отображаемых данных, и снова включить обновление перед выходом из процедуры)
4.StandardFont – Имя стандартного шрифта для новых рабочих листов