С оператором

Выполняет последовательность операторов для отдельного объекта или пользовательского типа.

Синтаксис

Withobject [ statements ] End With

Синтаксис оператора With состоит из следующих частей:

Part Описание
object Обязательно. Имя объекта или пользовательского типа.
Операторы Необязательный параметр. Один или несколько операторов, которые выполняются в отношении объекта объект.

Замечания

Оператор With позволяет выполнить последовательность операторов в отношении заданного объекта без повторной квалификации его имени. Например, чтобы изменить несколько свойств одного объекта, поместите операторы присваивания свойств в управляющую структуру With, которая ссылается на объекта; в этом случае вам не понадобится указывать ссылку на объект при каждом присваивании.

В следующем примере демонстрируется использование оператора With для присвоения значений нескольким свойствам одного объекта.

With MyLabel 
 .Height = 2000 
 .Width = 2000 
 .Caption = "This is MyLabel" 
End With 

Примечание.

После входа в блок With элемент объект нельзя изменить. Соответственно, вы не можете использовать один оператор With для изменения нескольких объектов.

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

Примечание.

В общем случае не рекомендуется использовать переходы в блоки With или из них. Если выполнены операторы в блоке With, однако оператор With или End With остался невыполненным, после выхода из процедуры временная переменная со ссылкой на объект останется в памяти.

Пример

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

With MyObject 
 .Height = 100 ' Same as MyObject.Height = 100. 
 .Caption = "Hello World" ' Same as MyObject.Caption = "Hello World". 
 With .Font 
  .Color = Red ' Same as MyObject.Font.Color = Red. 
  .Bold = True ' Same as MyObject.Font.Bold = True. 
 End With
End With

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.