End Sub. LotteryEntry = Int(10 * Rnd())

End With

End Sub

Инструкция With

End Sub

Do

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 второго рабочего листа в программе БезИспользованияWith пришлось ввести 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
Сейчас читают про: