End Sub. LotteryEntry = Int(10 * Rnd

End With

End Sub

Инструкция With

End Sub

Do

End Sub

DO

LotteryEntry = Int(10 * Rnd())

Beep

Loop Until LotteryEntry =7

MsgBox "Выпал номер " & LotteryEntry & ". Вы выиграли!"

А теперь заменим ключевое слово Until в конце цикла словом While. Тогда мы сможем вернуть в условие знак неравенства вместо знака равенства:

Sub DoLoopWhile()

Dim LotteryEntry As Integer

LotteryEntry = Int(10 * Rnd())

Beep

Loop While LotteryEntry <> 7

MsgBox "Выпал номер " & LotteryEntry & ". Вы выиграли!"

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

Чтобы лучше уяснить действие этой инструкции, рассмотрим два фрагмента кода, решающих одну и ту же задачу: один (БезИспользованияWith) — без использования With, второй (With_Инструкция) — ее средствами.

Sub БезИспользованияWith()

ActiveWorkbook.Worksheets(2).Range("A1").Font.Bold = True

ActiveWorkbook.Worksheets(2).Range("A1").Font.Italic = True

ActiveWorkbook.Worksheets(2).Range("A1").Font. Size = 22

ActiveWorkbook.Worksheets(2).Range("A1").Font. Name = _

"Times New Roman"

ActiveWorkbook.Worksheets(2).Range("A1").Font.Colorlndex = 3

Worksheets(2).Select

Здесь для изменения свойств объекта Font ячейки A1 второго рабочего листа пришлось ввести 5 команд, состоящих более чем из 360 символов. В этих командах мы 21 раз обращались к объектам и свойствам (рассчитывается по числу точек в инструкциях), а на каждое обращение уходит определенное время. Перепишем ту же программу, используя инструкцию With.

Sub With_Инструкция()

With ActiveWorkbook.Worksheets(2).Range("A1").Font

.Bold = True

.Italic = True

.Size =22

.Name = "Times New Roman"

.Colorlndex = 3

Worksheets(2).Select

Программа With_Инструкция содержит 202 символа (56% от объема БезИспользованияWith) и 9 обращений к объектам и свойствам (43%). Можно утверждать, что инструкция With в два раза уменьшает время, необходимое на ввод программы, и в два раза ускоряет ее выполнение. Сравнение этих примеров, конечно, не совсем корректно. В действительности число обращений к объектам в программе БезИспользованияWith можно сократить и без инструкции With. Тем не менее, ее преимущества видны здесь ясно. Естественно, далеко не всегда использование этой инструкции приводит к таким заметным изменениям, и все-таки Ваши программы только выиграют, если Вы запомните следующее правило.

Замечание:

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

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

Sub Пример_с_With()

With ActiveWorkbook.Worksheets(3)

.Select

.Unprotect

With. Range("A1")

MsgBox.Value

.Value = 200

.RowHeight =60

.ColumnWidth = 20

.Font.Size = 20

.Interior.ColorIndex = 3


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: