ВУЗ:
Составители:
86
типу Variant. Во втором случае Вы можете определить ее как Variant, Object или
приписать ей конкретный объектный тип, соответствующий объектам семейства.
In − ключевое слово, отделяющее переменную от группы
GasArray − группа, то есть массив или семейство объектов. Количество повто-
рений цикла совпадает с числом элементов в группе. Переменной цикла при первом
выполнении присваивается значение первого элемента группы, затем – всех после-
дующих элементов.
MsgBox Name − тело цикла (в данном случае всего одна инструкция). Внутри
тела цикла может быть любое количество инструкций, в том числе и вложенные
структуры For-Each-Next, но уже с другой переменной цикла.
Next − ключевое слово, отмечающее конец инструкции. Достигнув его, про-
грамма возвращается к началу цикла – инструкции For-Each. Если значение пере-
менной цикла совпадет с последним элементом группы, выполнится инструкция,
написанная сразу после Next.
В прошлых версиях VBA в инструкции For-Each-Next значения элементов мас-
сива можно было использовать, но нельзя было изменять. В версии Office-2003 и
старше изменение их свойств в инструкции For-Each допустимо.
2.9.7. Инструкция For-Each-Next с семействами (объектами)
Преимущество For-Each-Next при работе с массивами заключается в том, что
при программировании циклов не надо заботиться о количестве проходов цикла или
условии выхода из цикла – он будет выполнен ровно столько раз, сколько элементов
массива Вы объявите в начале программы. Более того, если Вы решите изменить
количество элементов массива, то фрагмент с инструкцией For-Each переделывать
не понадобиться. Эти преимущества сохраняются и даже дают больший эффект в
обращении с объектами семейств. Рассмотрим простой пример.
Sub Pro33()
Dim ShV As Worksheet
For Each ShV In ActiveWorkbook.Worksheets
MsgBox ShV.Name
Next ShV
End Sub
В Рrо33 происходит обращение к каждому рабочему листу из семейства
Worksheets активной (открытой) рабочей книги, в результате которого имена листов
последовательно выводятся
на экран, хотя их количество программисту заранее не
известно. Например, изменим значения свойства Name всех рабочих листов книги:
Sub Pro34()
Dim ShV As Worksheet
For Each ShV In ActiveWorkbook.Worksheets
ShV.Name = "Новиков " & ShV.Name
MsgBox ShV.Name
Next ShV
End Sub
Страницы
- « первая
- ‹ предыдущая
- …
- 85
- 86
- 87
- 88
- 89
- …
- следующая ›
- последняя »
