Самоучитель VBA

         

Свойства и методы объекта Range



Свойства и методы объекта Range

Объект Range позволяет сочетать гибкость VBA и мощь рабочего листа Excel. Более 400 встроенных функций рабочего листа существенно упрощают и делают более наглядным программирование на VBA.

Далее приводятся наиболее часто используемые свойства и методы объекта

Range.

Перечислим основные свойства объекта Range.



Value

Возвращает значение из ячейки или в ячейки диапазона. В данном примере переменной х присваивается значение из ячейки C1 :

х = Range ("C1") .Value В следующем примере в диапазон AI : В2 введена 1 :

Range ("A1:B2") .Value = 1

Name

Возвращает имя диапазона. В данном примере диапазону А1:В2 присваивается имя итоги:

Range ( "Al :B2") .Name = "Итоги"

Count

Возвращает число объектов в наборе. В данном примере переменной х присваивается значение, равное числу строк диапазона AI : В2 :

х = Range ( "Al :B2") .Rows . Count

CurrentRegion

Возвращает число строк текущего диапазона. Текущим является диапазон, ограниченный пустыми строками и столбцами и содержащий данный элемент. В следующем примере переменной у присваивается значение, равное числу строк в текущем диапазоне, содержащем ячейку AI :

у = Range ( "Al" ). CurrentRegion. Rows . Count

WrapText

Позволяет переносить текст при вводе в диапазон. Допустимые значения True и False. В следующем примере в ячейку В2 вводится текст длинный текст и в этой ; ячейке устанавливается режим ввода текста с переносом: With Range ("B2") .Value = "Длинный текст" .WrapText = True End With

EntireColumn, EntireRow

Возвращает столбец и строку соответственно. В данном примере очищается содержимое строки и выделяется столбец с активной ячейкой:

ActiveCell . EntireRow. Clear ActiveCell .EntireColumn. Select

ColumnWidth, RowHeight

Возвращает ширину столбцов и высоту строк диапазона соответственно

Comment

Возвращает объект comment (примечание), который связан с левым верхним углом диапазона при отображении на экране. Объект comment является элементом семейства comments. Метод AddComment, примененный к диапазону, создает новое примечание. Среди методов объекта comment отметим только метод Text, который задает текст, выводимый в примечании. Синтаксис:

Text (Text, Start, Overwrite)

  • Text — строка, выводимая в качестве примечания П start — с какого символа вводится текст в уже существующее примечание. Если аргумент опущен, то из примечания удаляется весь ранее введенный текст П overwrite — допустимые значения: True (вводимый текст записывается поверх уже существующего) и False (вводимый текст вставляется в уже существующий) Среди свойств объекта Comment отметим только свойство visible, устанавливающее отображение примечания при активизации диапазона, имеющего определенное примечание. В качестве примера рассмотрим следующие инструкции, которые создают и отображают примечание ячейки вз, поясняющее запланированное событие (Рисунок 3.1):

With Range ("ВЗ")

.AddComment

.Text Text:= "Чрезвычайно важно!" & Chr(10) & "Про это никак нельзя забыть ! "

.Visible = True End With

Рисунок 2.1. Пример отображения примечания на рабочем листе

Font

Возвращает объект Font (шрифт). Объект Font имеет следующие свойства:

  • Name — строка, указывающая имя шрифта, например "Arial Cyr"
  • FontStyle — СТИЛЬ, возможен Regular (обычный), Bold (ПОЛУЖИРНЫЙ), Italic(курсив), Bold italic (полужирный курсив)
  • size - размер
  • strikethrough — допустимы два значения: True (буквы имеют линию по центру, как будто они перечеркнуты) и False (не имеют линии по центру)
  • Superscript — допустимы два значения: True (текст используется как верхний индекс) и False (не используется как верхний индекс)
  • Subscript — допустимы два значения: True (текст используется как нижний индекс) и False (не используется как нижний индекс)
  • Underline-допустимыми являются значения:
  • xlNone (нет подчеркивания)
  • xlSingie (одинарное, по значению)


    • xlDoubie (двойное, по значению)
    • xlsingleAccounting (одинарное, по ячейке)
    • Accounting (двойное, но ячейке)

    Например, в следующем примере устанавливается для диапазона AI : в2 полужирный шрифт, красного цвета и с высотой символов 1 4 :

    With Range ("A1:B2").Font

    .Size = 14

    .FontStyle = Bold

    .Colorlndex = 3

    End With

    Formula

    Возвращает формулу в формате Al. Например, следующая инструкция вводит в ячейку с2 формулу =$А$4+$А$ю:

    Range ("C2") . Formula = "=$А$4+$А$10"

    FormulaArray 1

    Возвращает формулу диапазона в формате А1. В отличие от обыкновенной формулы рабочего листа, формула диапазона вводится на рабочем листе не посредством нажатия на клавишу <Enter>, а с помощью комбинации клавиш <Ctrl>+<Shift>+<Enter>. Следующая инструкция вводит в диапазон Е!:ЕЗ формулу {=Sum(Al:A3*Bl:B3) }:

    Range ( "El :E3") .FormulaArray = "=Sum(Al:A3*Bl:B3) "

    FormulaHidden

    Допустимые значения: True (формула спрятана, если рабочий лист или книга защищены) и False (в противном случае). Например, следующая инструкция скрывает формулы в столбце А: Columns ("A") . FormulaHidden = True

    FormulaLocal

    Возвращает неанглоязычные (местные) формулы в формате А1. Например, следующая инструкция вводит в ячейку В2 формулу =СУММ(С1:С4):

    Range("B2"). FormulaLocal = "=СУММ (С1:С4) "

    JormulaRlCl

    Возвращает формулу в формате R1C1. Например,

    Range ("Bl") . FormulaRlCl = "=SQRT (R3C2 ) "

    FormulaRlCl Local

    Возвращает неанглоязычные формулы в формате R1C1

    Text

    Возвращает содержание диапазона в текстовом формате

    HorizontalAlignment

    Горизонтальное выравнивание. Допустимые значения:

    • xlceneral (обычное выравнивание, зависящее от типа вводимых значений)
    • xlcenter (выравнивание по центру)
    • xlRight (выравнивание по правому краю)
    • xlLeft (выравнивание по левому краю)
    • xUustify (выравнивание по ширине)
    • xlCenterAcrossSelection (выравнивание по центру в выделенном диапазоне)
    • xlFill (выравнивание по ширине


    Vertical Alignment

    Вертикальное выравнивание. Допустимые значения:

    • xlBottom (выравнивание по нижнему краю),
    • xlcenter (выравнивание по центру),
    • xUustify (выравнивание по высоте),
    • xlTop (выравнивание по верхнему краю)

    Orientation

    Ориентация. Допускается либо угол поворота текста в градусах от —90° до 90°, либо одно из допустимых значений:

    • xlDownward (выравнивание по левому краю сверху вниз, соответствует углу —90°)
    • xlHorizontal(выравнивание по горизонтали, соответствует нулевому углу )
    • xlupward (выравнивание по правому краю снизу вверх, соответствует углу 90°)
    • xlvertical (выравнивание по вертикали, нет соответствия в градусах)

    ShrinkToFit

    Допустимые значения: True (автоматическое изменение шрифта так, чтобы текст помещался в ячейку) и False (в противном случае)

    Ниже приведены наиболее часто используемые методы объекта Range.

    Address

    Возвращает адрес ячейки.

    Синтаксис:

    Address (rowAbsolute, coluimAbsolute, referenceStyle, external, relativeTo)

    Аргументы:

    • RowAbsoiute — допустимы два значения True и False, если используется значение True или аргумент опущен, то возвращается абсолютная ссылка на строку
    • ColumnAbsoiute — допустимы два значения True и False, если используется значение True или аргумент опущен, то возвращается абсолютная ссылка на столбец
    • ref erenceStyle — допустимы два значения xlAl и

      xiR1c1, если используется значение X1A1 или аргумент опущен, то возвращается ссылка в виде формата А1 П external — допустимы два значения True и False, если используется значение False или аргумент опущен, то возвращается относительная ссылка

    • relativeTo — В случае, если rowAbsoiute и СolumnAbsoiute равны False, a referenceStyle X1R1C1, то данный аргумент определяет начальную ячейку диапазона, относительно которой производится адресация Следующий пример показывает различные результаты адресации.

      MsgBox Cells (1, 1). Address ()
    '
    ' В диалоговом окне отображается адрес $А$1 MsgBox Cells (1, 1) .Address (rowAbsoiute:=False)
    '

    ' В диалоговом окне отображается адрес $А1 '

    MsgBox Cells (1, 1) .Address (ref erenceStyle :=x1R1C1) '
    ' В диалоговом окне отображается адрес R1C1 '


    Clear, ClearComments , Clear Contents, ClearFormats

    И

    Метод clear очищает диапазон. В следующем примере очищается диапазон Al :G37 . Range ("A1:G37") .Clear

    Методы ClearComments, ClearContents, ClearFormats и ClearNotes очищают В диапазоне

    AutoFit

    Автоматически настраивает ширину столбца и высоту строки

    ClearNotes

    комментарии, содержание, форматы и примечания соответственно.

    Copy

    Копирует диапазон в другой диапазон или в буфер обмена.

    Синтаксис:

    Copy (destination)

    • Аргумент destination определяет диапазон, куда копируется данный диапазон. Если аргумент destination опушен, то копирование происходит в буфер обмена. В данном примере диапазон AI : D4 рабочего листа Лист! копируется в диапазон Е5:Н8 листа лист2:

    Worksheets ("Лист1" ) . Range ( "А1 : D4 " ) .Сору destination :=Worksheets ("Лист2") .Range ("E5")

    Cut

    Копирует диапазон с удалением в указанный диапазон или в буфер обмена,

    Синтаксис:

    Cut (destination)

    • Аргумент destination определяет диапазон, в который копируется данный диапазон. Если аргумент destination опущен, то диапазол копируется в буфер обмена. В данном примере диапазон AI : D4 рабочего листа лист! копируется с удалением в буфер обмена:

    Worksheets ( "Лист1 " ) . Range ( "А1 : D4 " ) . Cut

    Delete

    Удаляет диапазон. В данном примере удаляется третья строка активной рабочей страницы:

    Rows (3) .Delete

    Columns, Rows

    Возвращают соответственно семейства столбцов и строк, из которых состоит диапазон. В следующем примере переменным i и j присваиваются значения, равные количеству столбцов и строк в выделенном диапазоне соответственно:

    i = Selection. Columns . Count j = Selection. Rows . Count

    Insert

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

    Worksheets ( "Лист1" ) . Rows (4 ) .Insert

    Offset

    Возвращает диапазон, смещенный относительно данного на величины, специфицированные в аргументах.

    Синтаксис:

    Of fset (rowOffset, columnOf f set )

    Аргументы:

    • rowOffset — целое число, указывающее сдвиг по строкам
    • columnOf f set — целое число, указывающее сдвиг по столбцам Например, в следующем примере активизируется ячейка, расположенная на три строки ниже и на два столбца левее относительно предыдущей активной ячейки:

    ActiveCell.Offset (rowOf fset :=3, columnOf fset : =-2) .Activate


    Select

    Выделение диапазона

    PasteSpecial

    Специальная вставка из буфера обмена.

    Синтаксис:

    BasteSpecial (paste, operation, skipBlanks, transpose)

    Аргументы:

    • Paste — определяет ту часть содержимого буфера обмена, которая должна быть вставлена в диапазон. Допустимые значения:
    • xlAll (все)
    • xl Formulas (формулы)
    • xlvaiues (значения)
    • xlFormats (форматы)
    • xlNotes (примечания)
    • xlAllExceptBorders (без рамки)
  • Operation — определяет операции.Допустимые значения:
    • xlNone (нет)
    • xlAdd (СЛОЖИТЬ)
    • xlSubtract (ВЫЧИСТЬ)
    • xlMultiply (УМНОЖИТЬ)
    • xlDivide (разделить)
    • SkipBlanks — допустимые значения: True (пустые ячейки при вставке не учитываются) и False (пустые ячейки учитываются)
    • Transpose — допустимые значения True (диапазон выводится транспонированным) и False (не транспонированным)
    • В приведенном ниже примере данные из диапазона C1:C5 рабочего листа лист1 вставляются в диапазон D1 : D5 того же листа, причем они не заменяют уже существующие данные в диапазоне D1:D5, а прибавляются к ним данные из диапазона C1 : С5 :

      Worksheets ( "Лист1 " ) . Range ( "С1 : С5 " ) . Сору Worksheets ("Лист1") .Range ("D1: D5") . PasteSpecial operation : =xlAdd

      Метод PasteSpecial программирует выполнение на рабочем листе команды Правка, Специальная вставка (Edit, Paste Special). Аргументы метода PasteSpecial соответствуют установкам диалогового окна Специальная вставка (Paste Special), отображаемого с помощью этой команды (Рисунок 3.2)

      Рисунок 2.2. Диалоговое окно Специальная вставка

      AddComment

      Добавляет примечание к диапазону.

      Синтаксис:

      AddComment (Text)

      • Text — строковое выражение добавляемое в качестве примечания В следующем примере создается примечание внимание ! ячейки AI активного рабочего листа:

      Range ( "А! " ) . AddComment "Внимание!"



      Содержание раздела