Адресация ячеек в VBA Excel

Адресация (ссылка) на ячейки рабочего листа могут осуществляться двумя способами:

1). используя свойство Cells объекта Worksheet,

2). используя свойство Address объекта Range.

Первый способ. Формат свойства Cells объекта Worksheet:

Worksheets (индекс) .Cells (<№ строки>,<№ столбца>), где

- индекс – номер или имя рабочего листа,

- <№ строки>,<№ столбца> – целочисленные выражения, задающие значения № строки и № столбца рабочего листа.

Пример

Ячейка, находящаяся в строке 2 в столбце 5 (ячейка E2) листа Лист1, получает значение 10.

Worksheets(“Лист1”).Cells(2,5).Value=10

Номер строки и столбца могут быть записаны в виде выражений.

Например, если

i=1

k=2,

а ячейке E2 листа Лист1 вы хотите присвоить значение, равное 10, то можно написать

Worksheets(“Лист1”).Cells(k, i*4+1).Value=10

Второй способ. Формат свойства Address объекта Range:

Worksheets( индекс ).Range( Address )

Пример

Worksheets(“Лист1”).Range(“E2”).Value=10

Примечание:

Для активного рабочего листа можно опустить его название и слово Value, например, записать предыдущие инструкции так:

Cells(k, i*4+1,)=10

Range(“E2”)=10

При использовании свойства Address объекта Range можно указать диапазон ячеек. Например, в результате выполнения инструкции Range("a5:a10") = 5   ячейки блока A5:A10 получат значение 5.

Связь объекта Range и свойства Cells.

Так как ячейка является частным случаем диапазона, состоящим только из единственной ячейки, объект Range также позволяет работать с ней. Объект Cells (ячейки) — это альтернативный способ работы с ячейкой. Например, ячейка А2 как объект описывается Range("A2") или cells(1,2). В свою очередь объект cells, вкладываясь в Range, также позволяет записывать диапазон в альтернативном виде, который иногда удобен для работы, а именно,

Range ("А2:C3") И Range(Cells(1,2), Cells(3,3))

определяют один и тот же диапазон.

Вывод сообщений и ввод данных

В этом пункте рассматриваются следующие средства вывода сообщений на экран дисплея и ввода данных с клавиатуры при помощи диалоговых окон:

- использование функции MsgBox;

- использование функции InputBox;

- применение метода InputBox;

- именование аргументов,

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

Функция MsgBox

Функция MsgBox служит для организации диалоговых окон, содержащих какие-либо сообщения. После своего появления на экране окно сообщения ждет, пока пользователь щелкнет на одной из кнопок, присутствующих в окне. В зависимости от того, на какой кнопке щелкнул пользователь, функция возвращает определенное целое число. Функция MsgBox имеет следующий формат:

MsgBox(Prompt[,Buttons][,Title][,Helpfile,Context])

Аргументы рассматриваемой функции означают следующее.

Prompt (Приглашение) – единственный обязательный аргумент этой функции. Значением этого аргумента служит строка текста, которая появляется как сообщение в диалоговом окне. Эта строка текста должна быть заключена в кавычки. Круглые скобки в синтаксисе MsgBox указывают на то, что в данном случае MsgBox является функцией, возвращающей какое-либо значение. Если скобки опущены, то для VBA это признак того, что данное выражение значение не возвращает и результатом выполнения инструкции MsgBox является только вывод диалогового окна.

Все остальные аргументы этой функции не обязательны.

Buttons (Кнопки) – числовое выражение, представляющее сумму значений, которые указывают число и тип отображаемых кнопок, тип используемого значка, основную кнопку и способ, каким используется окно сообщения. Значение аргумента можно задать в виде константы VBA или целым числом. Данный аргумент необязателен. Значение по умолчанию этого аргумента равняется 0 или константе vbOkOnly. Если не указан аргумент
Кнопки, то VBA предполагает, что в диалоговом окне сообщения присутствует только кнопка ОК. Аргумент Кнопки позволяет управлять следующими параметрами окна сообщения:

- количество кнопок в окне;

- типы кнопок и их размещение в окне;

- пиктограмма, отображаемая в окне;

- какая кнопка назначается кнопкой по умолчанию;

- режим окна сообщения.

Значения констант, определяющих число и тип кнопок в диалоговом окне, вид используемого информационного значка, и кнопку, на которую устанавливается фокус, приведены в таблице 1, 2 и 3 соответственно.

Таблица 1.

Значения аргумента buttons процедуры MsgBox, определяющие отображаемые кнопки в диалоговом окне

Константа Значение Отображаемые кнопки
vbOKOnly 0
VbOKCancel 1
VbAbortRetrylgnore 2
VbYesNoCancel 3
VbYesNo 4
VbRetryCancel 5

Таблица 2.

Значения аргумента buttons процедуры MsgBox, определяющие отображаемые информационные значки в диалоговом окне

Константа Значение Значок сообщения
VbCritical 16
VbQuestion 32
VbExclamation 48
VbInformation 64  

Таблица 3.

Значения аргумента buttons процедуры MsgBox, определяющие основную кнопку в диалоговом окне

Константа Значение Номер основной кнопки
VbDefaultButton1 0 1
VbDefaultButton2 256 2
VbDefaultButton3 512 3
VbDefaultButton4 768 4

При написании программ, в которых в зависимости от нажатой кнопки диалогового окна необходимо выполнить определённое действие, вместо возвращаемых числовых значений удобнее использовать константы VBA (табл. 4), которые делают код программы нагляднее и позволяют избежать ошибок при написании программ.

Таблица 4.

Значения констант, соответствующие нажатой кнопке в диалоговом окне

Константа Значение Нажатая кнопка
vbOK 1 OK
vbCancel 2 Отмена (Cancel)
vbAbort 3 Прервать (Abort)
vbRetry 4 Повторить (Retry)
vbIgnore 5 Пропустить (Ignore)
vbYes 6 Да (Yes)
vbNo 7 Нет (No)

Чтобы не ошибиться при вводе значений аргумента кнопки, используйте список констант, который появляется после ввода знака "+". Знак "+" используется для объединения нескольких констант при задании сложного аргумента кнопки. Например, использование в процедуре выражения

vbYesNoCancel + vbQuestion + vbDefaultButton1

приведёт к появлению кнопок Да, Нет и Отмена (константа vbYesNoCancel), значка (константа vbQuestion) и по умолчанию к использованию первой кнопки (константа vbDefaultButton1).

Примечание

Чтобы просмотреть список всех внутренних констант VBA, необходимо в окне программного кода VBA щёлкнуть левой кнопкой мыши по имени любой константы и нажать клавишу <F1>. В появившемся окне можно найти все внутренние константы Excel.

Title (Заголовок) – содержит заголовок окна сообщения; аргумент необязательный. Без этого аргумента в заголовке будет выведено имя приложения MS Office, из которого запускается программа на VBA (Excel, Word и т.д.).

Helpfile (Справка) – строковое выражение, содержащее имя справочного файла Windows. Обычно это файл, созданный разработчиком приложения с помощью Windows Help Compiler.

Context (Раздел)– численное выражение, указывающее раздел в справочном файле, относящийся к отображаемому диалоговому окну.

Аргументы Helpfile и Context не обязательны. Они используются или опускаются вместе.

Аргументы функции необходимо перечислять в том порядке, в каком они размещены в её формате. Следовательно, в функции MsgBox они должны располагаться следующим образом:

Prompt [, Buttons] [, Title] [, Helpfile, Context])

Если какой-либо аргумент опущен, то необходимо включать в список аргументов отмечающие запятые для следующего в списке аргумента.

В приведённой ниже процедуре ФункцияMsgBox () функция MsgBox используется для:

- определения, какая из кнопок: Да, Нет или Отмена – нажата (щёлкнута) в диалоговом окне этой функции;

- вывода на экран сообщения, какая кнопка была нажата и наименование примера использования этой функции.

Внутренняя константа vbExclamation используется в процедуре для вывода в окне сообщения символа . Определение значения нажатой кнопки осуществляется при помощи инструкции If…Then…Else, синтаксис которой будет подробно рассмотрен в дальнейшем.

 

Sub ФункцияMsgBox()

Dim Структура As String

Dim Кнопка As Integer

'

' В переменной Структура задается структура диалогового окна

Структура = vbYesNoCancel + vbQuestion + vbDefaultButton1

' В переменную Кнопка вводится целое число, возвращаемое MsgBox

' при нажатии кнопки Да, Нет или Отмена в окне сообщения функции

' MsgBox

Кнопка = MsgBox("Выбрать Да, Нет или Отмена?", Структура, _

"Примеры функции MsgBox")

' На экране отображается соответствующее сообщение

' в зависимости от значения переменной Кнопка

MsgBox "Равно " & Кнопка,, "Возвращаемое значение"

If Кнопка = vbYes Then MsgBox "Выбрано Да", vbExclamation, _

"ПРИМЕР 1"

If Кнопка = vbNo Then MsgBox "Выбрано Нет", vbExclamation, _

"ПРИМЕР 2"

If Кнопка = vbCancel Then MsgBox "Выбрано Отмена", _

vbExclamation,"ПРИМЕР 3"

End Sub



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: