
- •1) Алгоритмический язык Basic. Предопределенные типы данных.
- •3) Объявления переменных и констант.
- •4) Арифметические операции. Арифметические выражения.
- •5) Операторы присваивания. Приоритет операций и порядок вычислений.
- •7) Операторы If-Then и If-Then-Else.
- •8) Оператор If с несколькими альтернативами.
- •9) Оператор Select Case.
- •11) Объявление одномерных массивов. Доступ к элементам одномерных массивов.
- •12) Объявление многомерных массивов. Доступ к элементам многомерных массивов.
- •13) Инициализация массивов, функция Array
- •14) Динамические массивы.
- •15) Оператор цикла For-Next, примеры использования.
- •17) Операторы цикла Do-Loop с предусловием
- •18) Операторы цикла Do-Loop с постусловием
- •32) Основные свойства и методы объекта Range
- •33) Способы создания формы и размещения на ней элементов управления
- •34) Элементы управления Label
- •35) Элементы управления TextBox
- •36) Элементы управления OptionButton
- •37) Элементы управления CheckBox
- •38) Элементы управления ListBox
- •39) Элементы управления ComboBox
- •40) Элементы управления ScrollBar
- •41) Элементы управления MultiPage
- •42) Элементы управления TabStrip
- •10) Вложенные конструкции для принятия решений
- •25) Аргументы подпрограмм по умолчанию и неопределенный список аргументов
32) Основные свойства и методы объекта Range
Объект Range позволяет сочетать гибкость VBA и мощь рабочего листа Excel. Более 400 встроенных функций рабочего листа существенно упрощают и делают более наглядным программирование на VBA.
Далее приводятся наиболее часто используемые свойства и методы объекта Range.
Перечислим основные свойства объекта Range.
Value |
Возвращает значение из ячейки или в ячейки диапазона. В данном примере переменной х присваивается значение из ячейки С1: х = Range("C1").Value В следующем примере в диапазон А1 : В2 введена 1; Range("A1:B2").Value =1 |
Name |
Возвращает имя диапазона. В данном примере диапазону А1:В2 Присваивается имя Итоги: Range("А1:В2").Name = "Итоги" |
Count |
Возвращает число объектов в наборе. В данном примере переменной х присваивается значение, равное числу строк диапазона А1: В2:; х = Range("A1:B2").Rows.Count |
CurrentRegion |
Возвращает число строк текущего диапазона. Текущим является диапазон, ограниченный пустыми строками и столбцами и содержащий данный элемент. В следующем примере переменной у присваивается значение, равное числу строк в текущем диапазоне, содержащем ячейку А1: у = Range("A1").CurrentRegion.Rows.Count |
WrapText |
Позволяет переносить текст при вводе в диапазон. Допустимые значения True и False. В следующем примере в ячейку В2 вводится текст «Длинный текст» и в этой ячейке устанавливается режим ввода текста с переносом: With Range("B2") .Value = "Длинный текст" .WrapText = True End With |
SntireColumn, EntireRow |
Возвращает столбец и строку соответственно. В данном примере очищается содержимое строки и выделяется столбец с активной ячейкой: ActiveCell.EntireRow.Clear ActiveCell.EntireColumn.Select |
ColumnWidth, RowHeight |
Возвращает ширину столбцов и высоту строк диапазона I соответственно |
Comment |
Возвращает объект comment (примечание), который связан с левым верхним углом диапазона при отображении на экране. Объект comment является элементом семейства Соmments. Метод Addcomment, примененный к диапазону, создает новое примечание. Среди методов объекта Comment отметим только метод Text, который задает текст, выводимый в примечании. Синтаксис: Text(Text, Start, Overwrite) - Text — строка, выводимая в качестве примечания - start — с какого символа вводится текст в уже существующее примечание. Если аргумент опущен, то из примечания удаляется весь ранее введенный текст - Overwrite — допустимые значения: True (вводимый текст записывается поверх уже существующего) и False (вводимый текст вставляется в уже существующий) Среди свойств объекта comment отметим только свойство visible, устанавливающее отображение примечания при активизации диапазона, имеющего определенное примечание. В качестве примера рассмотрим следующие инструкции, которые создают и отображают примечание ячейки В3, поясняющее запланированное событие (рис. 3.1): With Range("B3").AddComment .Text Text:= _ "Чрезвычайно важно!" & Chr(10) &_ "Про это никак нельзя забыть!" .Visible = True End With |
Font |
Возвращает объект Font (шрифт) Объект Font имеет следующие свойства: - Name — строка, указывающая имя шрифта, например "Arial Cyr" - FontStyle — стиль, возможен Regular (обычный), Bold (полужирный), Italic (курсив), Bold italic (полужирный курсив) - size — размер - strikethrough — допустимы два значения: True (буквы имеют линию по центру, как будто они перечеркнуты) и False (не имеют линии по центру) – Superscript — допустимы два значения: True (текст используется как верхний индекс) и False (не используется как верхний индекс) - Subscript — допустимы два значения: True ; (текст используется как нижний индекс) и False (не используется как нижний индекс) - underline — устанавливает тип подчеркивания, допустимыми являются значения: • xlNone (нет подчеркивания); • xlSingle (одинарное, по значению) • xlDouble (двойное, по значению) • xlSingleAccounting (одинарное, по ячейке) • Accounting (двойное, по ячейке) Например, в следующем примере устанавливается для диапазона A1:В2 полужирный шрифт, красного цвета и с высотой символов 14: With Range("Al:B2").Font .Size = 14 .FontStyle = Bold .Colorlndex = 3 End With |
Formula |
Возвращает формулу в формате Al. Например, следующая инструкция вводит в ячейку С2 формулу =$A$4+$A$10 Range("C2").Formula = "=$А$4+$А$10" |
FormulaArray |
Возвращает формулу диапазона в формате Al. В отличие от обыкновенной формулы рабочего листа, формула диапазона вводится на рабочем листе не посредством нажатия на клавишу <Enter>, а с помощью комбинации клавиш <Ctrl>+<Shift>+<Enter>. Следующая инструкция вводит в диапазон E1:E3 формулу {=Sum(Al:A3*Bl:B3)}: Range("El:E3").FormulaArray = "=Sum(Al:A3*Bl:B3)" |
FormulaHidden |
Допустимые значения: True (формула спрятана, если рабочий лист или книга защищены) и False (в противном случае). Например, следующая инструкция скрывает формулы в столбце A: Columns("A").FormulaHidden = True |
FormulaLocal |
Возвращает неанглоязычные (местные) формулы в формате А1. Например, следующая инструкция вводит в Ячейку В2 формулу =СУММ(С1:С4): Range("B2"). FormulaLocal = "=СУММ(С1:С4)" |
FormulaRlCl |
Возвращает формулу в формате R1C1. Например, Range("Bl").FormulaRlCl = "=SQRT(R3C2)" |
FormulaRlClLocal |
Возвращает неанглоязычные формулы в формате R1C1 |
Text |
Возвращает содержание диапазона в текстовом формате |
HorizontalAlignment |
Горизонтальное выравнивание. Допустимые значения: - xlGeneral (обычное выравнивание, зависящее от типа вводимых значений) - xlCenter (выравнивание по центру) - xlRight (выравнивание по правому краю) -xlLeft (выравнивание по левому краю) - xlJustify (выравнивание по ширине) - xlCenterAcrossSelection (выравнивание по центру в выделенном диапазоне) - xlFill (выравнивание по ширине) |
VerticalAlignitient |
Вертикальное выравнивание. Допустимые значения: - xlBottom (выравнивание по нижнему краю), - xlCenter (выравнивание по центру), - xlJustify (выравнивание по высоте), - xlTop (выравнивание по верхнему краю) |
Orientation |
Ориентация. Допускается либо угол поворота текста в градусах от —90° до 90°, либо одно из допустимых значений: - xlDownward (выравнивание по левому краю сверху вниз, соответствует углу —90°) - xlHorizontal (выравнивание по горизонтали, соответствует нулевому углу) - xlUpward (выравнивание по правому краю снизу вверх, соответствует углу 90°) - xlVertical (выравнивание по вертикали, нет соответствия в градусах) |
ShrinkToFit |
Допустимые значения: True (автоматическое изменение шрифта так, чтобы текст помещался в ячейку) и False (в противном случае) |
Ниже приведены наиболее часто используемые методы объекта Range.
Address |
Возвращает адрес ячейки. Синтаксис: Address(rowAbsolute, columnAbsolute, _ referenceStyle, external, relativeTo) Аргументы: -rowAbsolute — допустимы два значения True и False, если используется значение True или аргумент опущен, то возвращается абсолютная ссылка на строку - columnAbsolute — допустимы два значения True и False, если используется значение True или аргумент опущен, то возвращается абсолютная ссылка на столбец - referenceStyle — допустимы два значения x1A1 и : x1R1c1, если используется значение x1A1 или аргумент опущен, то возвращается ссылка в виде формата А1 - external — допустимы два значения True и False, если используется значение False или аргумент опущен, то возвращается относительная ссылка - relativeTo — В случае, если rowAbsolute и columnAbsolute равны False, a referenceStyle — x1Rlc1, то данный аргумент определяет начальную ячейку диапазона, относительно которой производится адресация Следующий пример показывает различные результаты i адресации. MsgBox Cells(1, 1).Address() ' В диалоговом окне отображается адрес $А$1 MsgBox Cells(1, 1).Address(rowAbsolute:=False) ' В диалоговом окне отображается адрес $А1 MsgBox Cells(1, 1).Address(referenceStyle:=x1R1C1) ' В диалоговом окне отображается адрес R1C1 |
AutoFit |
Автоматически настраивает ширину столбца и высоту строки |
Clear, ClearCoiranents, ClearContents, ClearFormats и ClearNotes |
Метод clear очищает диапазон. ; В следующем примере очищается диапазон A1:G37. Range("A1:G37").Clear Методы ClearCoiranents, ClearContents, ClearFormats и ClearNotes очищают в диапазоне комментарии, содержание, форматы и примечания соответственно. |
Сору |
Копирует диапазон в другой диапазон или в буфер обмена. Синтаксис: Copy(destination) - Аргумент destination определяет диапазон, куда копируется данный диапазон. Если аргумент destination опущен, то копирование происходит в буфер обмена. В данном примере диапазон А1: D4 рабочего листа лист1 копируется в диапазон Е5:Н8 листа Лист2: Worksheets("Лист!").Range("Al:D4").Сору destination:=Worksheets("Лист2").Range("E5") |
Cut |
Копирует диапазон с удалением в указанный диапазон или в буфер обмена. Синтаксис: Cut(destination) - Аргумент destination определяет диапазон, в который копируется данный диапазон. Если аргумент destination опущен, то диапазон копируется в буфер обмена. В данном примере диапазон А1:D4 рабочего листа Лист1 копируется с удалением в буфер обмена: Worksheets{"Лист1").Range("Al:D4").Cut |
Delete |
Удаляет диапазон. В данном примере удаляется третья строка активной рабочей страницы: Rows(3).Delete |
Columns, Rows |
Возвращают соответственно семейства столбцов и строк, из которых состоит диапазон. В следующем примере переменным i и j присваиваются значения, равные количеству столбцов и строк в выделенном диапазоне соответственно: i = Selection.Columns.Count j = Selection.Rows.Count |
Insert |
Вставка ячейки или диапазона ячеек. i В следующем примере вставляется новая строка перед i четвертой строкой рабочего листа Лист1: : Worksheets("Лист1").Rows(4).Insert i |
Offset |
Возвращает диапазон, смещенный относительно данного на величины, специфицированные в аргументах. Синтаксис: Offset(rowOffset, columnOffset) Аргументы: - rowOffset — целое число, указывающее сдвиг по строкам - columnOffset — целое число, указывающее, сдвиг по столбцам Например, в следующем примере активизируется ячейка, расположенная на три строки ниже и на два столбца левее относительно предыдущей активной ячейки: ActiveCell.Offset(rowOffset:=3, columnOffset:=-2).Activate |
Select |
Выделение диапазона |
PasteSpecial |
Специальная вставка из буфера обмена. Синтаксис: PasteSpecial(paste, operation, skipBlanks, transpose) Аргументы: - Paste — определяет ту часть содержимого буфера обмена, которая должна быть вставлена в диапазон. Допустимые значения: • xlAll (все) • xlFormulas (формулы) • xlValues (значения) • xlFormats (форматы) • xlNotes (примечания) • xlAllxceptBorders (без рамки) - Operation — определяет операции. Допустимые значения: • xlNone (нет) • xlAdd (сложить) • xlSubtract (вычисть) • xlMultiply (умножить) • xiDivide (разделить) - skipBlanks — допустимые значения: True (пустые ячейки при вставке не учитываются) и False (пустые ячейки учитываются) - Transpose — допустимые значения True (диапазон выводится транспонированным) и False (не транспонированным) В приведенном ниже примере данные из диапазона C1:C5 рабочего листа лист1 вставляются в диапазон D1:D5 того же листа, причем они не заменяют уже существующие данные в диапазоне D1:D5, а прибавляются к ним данные из диапазона C1:C5: Worksheets("Лист1").Range("C1:C5").Copy Worksheets ("Лист1") .Range ("Dl:D5"). PasteSpecial operation:=xlAdd Метод PasteSpecial программирует выполнение на рабочем листе команды Правка, Специальная вставка (Edit, Paste Special). Аргументы метода PasteSpecial соответствуют установкам диалогового окна Специальная вставка (Paste Special), отображаемого с помощью этой команды (рис. 3.2)
|
AddComment |
Добавляет примечание к диапазону. Синтаксис: AddComment (Text) - Text — строковое выражение добавляемое в качестве примечания : В следующем примере создается примечание внимание ячейки A1 активного рабочего листа: Range("А1").AddComment "Внимание!" |