Короткая запись Range в коде VBA

Оказывается при написании макросов в коде VBA можно вполне себе успешно использовать сокращения для очень распространенного оператора Range, определяющего диапазон листа для выполнения с ним каких-либо действий. Так, например, стандартная конструкция вида:
Range("F3").Value=45

может быть коротко записана всего лишь как:
[F3]=45

Т.е. квадратные скобки заменяют оператор Range, скобки и кавычки.
Такая форма записи работает во всех вариантах, где работает стандартный оператор Range, т.е. например:

  • [a1:b3, f5, h:h].ClearContents - очищает содержимое диапазона A1:B3, ячейки F5 и столбца H,
  • Worksheet("Лист1").[D3].Font.ColorIndex = 3 - делает текст в ячейке D3 первого листа красным,
  • MsgBox [SalesData].Address - выводит на экран сообщение с адресом именованного диапазона SalesData и т.д.
Удобно.
Сколько лет программирую, а не перестаю удивляться таким вот периодически встречаемым малоизвестным фишкам. Нет предела совершенству.
Говоров Михаил
3 января 2013 14:09
Добрый день! Можно также записывать кратко название листа:

Worksheet("Лист1").Range("F3").Font.ColorIndex = 3
[Лист1].[F3].Font.ColorIndex = 3
3 января 2013 14:09
О, даже так. Спасибо!
Наверх