Для вывода данных в vba используются команды. Окно сообщения в VBA Excel - MsgBox

В VBA ввод и вывод информации (для взаимодействия с пользователем) можно осуществлять в диалоговых окнах. Диалоговое окно ввода значений реализуется встроенной функцией InputBox. В окне ввода, реализованное функцией InputBox, отображается поле для ввода значения переменной, в которое пользователь должен ввести определенное значение. Далее пользователь должен нажать кнопку ОК.

Функция InputBox() имеет следующий синтаксис:

Имя_Переменной = InputBox(Prompt, , , , , , )

Где аргументы: Prompt или Сообщение - обязательный аргумент, который задает в диалоговом окне информационное сообщение. Все остальные аргументы являются необязательными. Title задает заголовок окна. На рис 1 приведен модуль, в котором применена функция InputBox.


Рис. 1.

После выполнения модуля 2 появляется окно сообщения "Ввод значений переменных" (рис.2), в котором нужно ввести число и нажать кнопку ОК. В окне диалога (Рис.2), реализованном функцией InputBox (рис 1), отображаются: Заголовок окна - Ввод значений переменных; Сообщение - Введите число; Кнопки (по умолчанию) - ОК и Cancel; Поле предназначенное для ввода значений переменной.


Рис. 2.

Для вывода информации применяются диалоговые окна сообщений, реализуемые оператором MsgBox или функцией MsgBox() . MsgBox может использоваться как оператор. Оператор MsgBox осуществляет вывод информации в диалоговом окне и устанавливает режим ожидания нажатия кнопки пользователем.

Оператор MsgBox имеет следующий синтаксис:
MsgBox Prompt, , , ,

Где аргументы: Prompt или Сообщение - обязательный аргумент, задающий в окне выводимое информационное сообщение. Все остальные аргументы являются необязательными. Buttons - Кнопки, которые можно использовать в диалоговом окне вывода сообщений. В окне сообщений могут применяться различные кнопки (ОК, Отмена и т.д.). Если не указывать, какие кнопки необходимо отображать в окне сообщений, то по умолчанию отображается кнопка ОК. Кроме того, в диалоговых окнах вывода сообщений можно использовать различные значки (vbQuestion - значок вопросительного знака, vbExclamation - значок восклицательного знака и т.д.).

Модуль, в котором MsgBox используется как оператор, приведен на рис. 3 (оператор MsgBox "3", vbOKCancel, "Вывод значений").



Рис. 3

При запуске модуля 4 на исполнение отображается окно сообщений "Вывод значений" (рис. 4), в котором необходимо нажать кнопку ОК. В окне (Рис.4), реализованном оператором MsgBox (Рис. 3), отображаются: Заголовок окна - Вывод значений; Сообщение - 3; Кнопки - ОК и Отмена.


Рис. 4

Например, для вычисления функции типа y = 5 x 2 + 7 x + 9, можно использовать функцию InputBox и оператор MsgBox (рис. 5)



Рис. 5

После выполнения модуля 5 отображается окно ввода


Рис. 6

После ввода числа, например 789, и щелчка на кнопке ОК, появляется окно сообщения, в котором отображается результат вычисления функции у = 5 x 2 + 7 x + 9.


Рис. 7

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

" мы вкратце познакомились с диалоговым сообщением msgbox. Но это было простейшее информационное сообщение. Теперь рассмотрим подробнее работу с функцией MsgBox и все виды диалоговых сообщений.

Синтаксис функции MsgBox

Функция MsgBox имеет следующий синтаксис:

MsgBox (сообщение [, константы сообщения] [, заголовок] [, файл справки hlp, контекст справки])

Обязательным параметром является «Сообщение», остальные могут быть опущены.

MsgBox “Текст сообщения

  • Константы сообщения - позволяют определить вид диалогов.
  • Заголовок – задает заголовок формы диалога.
  • Файл справки hlp - строковое выражение, указывающее имя файла справки для диалогового окна.
  • Контекст справки - числовое выражение, указывающее номер контекста файла справки для диалогового окна.

Диалоговое окно вида:

создается следующей командой:
MsgBox "Текст содержащий вопрос", vbYesNo, "Название сообщения"

Для создания сообщения такого вида:

команда будет выглядеть так:
MsgBox "Текст содержащий вопрос", vbYesNoCancel, "Название сообщения"

Сообщение такого вида:

создается командой:
MsgBox "Текст содержащий вопрос", vbAbortRetryIgnore, "Название сообщения"

т.е. из всех трех примеров в команде меняется только второй параметр (vbYesNo, vbYesNoCancel, vbAbortRetryIgnore). Это и есть значения (константы) определяющие вид сообщения. Параметры (vbYesNo, vbYesNoCancel) могут быть заменены на числовое значение, например диалог vbYesNo можно вызвать, указав 4: MsgBox "Текст содержащий вопрос", 4, "Название сообщения".

Ниже приведен полный список констант и эквивалентных им цифровых значений:

Константа

Значение

Описание

vbOKOnly

Выводит сообщение с кнопкой OK

vbOKCancel

Выводит сообщение с кнопками OK и Отмена

vbAbortRetryIgnore

Выводит сообщение с кнопками Прервать , Повтор, Пропустить

vbYesNoCancel

Выводит сообщение с кнопками Да , Нет , Отмена .

Выводит сообщение с кнопками Да и Нет

vbRetryCancel

Выводит сообщение с кнопками Повтор и Отмена

В сообщениях можно слегка изменить внешний вид, назначить кнопку по умолчанию, добавить кнопку "Справка" путем сложения констант.

Например: MsgBox "Текст содержащий вопрос", vbYesNoCancel+vbInformation+ vbMsgBoxHelpButton+vbDefaultButton2, "Название сообщения" построит сообщение вида:

vbInformation - добавляет иконку восклицания в сообщение
vbMsgBoxHelpButton - добавляет кнопку "Справка"
vbDefaultButton2 - устанавливает фокус на второй кнопке ("Нет ")

Ниже таблица со списком констант иконок и констант, устанавливающих фокус на кнопках:

Константа

Значение

Описание

vbCritical

Выводит иконку критического сообщения (красный овал с крестом)

vbQuestion

Выводит иконку с вопросительным знаком

vbExclamation

Выводит иконку с восклицательным знаком (в желтом треугольнике)

vbInformation

Выводит иконку информационного сообщения

vbDefaultButton1

Устанавливает фокус по умолчанию на первой кнопке

vbDefaultButton2

Устанавливает фокус по умолчанию на второй кнопке

vbDefaultButton3

Устанавливает фокус по умолчанию на третьей кнопке

vbDefaultButton4

Устанавливает фокус по умолчанию на четвертой кнопке

vbMsgBoxHelpButton

Добавляет кнопку Справка

vbMsgBoxRight

Выравнивание текста сообщения по правой стороне

vbMsgBoxRtlReading

Зеркально переворачивает все элементы в сообщении (см. снимок ниже)

Как узнать какую кнопку в сообщении нажал пользователь?

Определяться выбор пользователя будет с помощью . В некоторых ситуациях можно использовать .

Например, вызовем сообщение двойным нажатием ЛКМ по любой ячейке на листе. В соответствии с выбором пользователя, выведем в эту ячейку текст.

Создаем новую книгу Excel и переходим в режим Visual Basic (Alt+F11). В окне проекта выбираем «Лист1 » и кликаем по нему два раза ЛКМ.

В открывшемся окне редактора кода вводим следующую процедуру:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean )

If MsgBox("Текст содержащий вопрос", vbYesNo, "Название сообщения") = vbYes Then
Selection = "Нажата ДА"
Else
Selection = "Нажата Нет"
End If

В условии IF мы сравниваем результат возвращенный функцией MsgBox, с константой vbYes т.е. если в сообщении нажата кнопка «Да », тогда функция MsgBox возвращает значение vbYes (6). Полный перечень констант и их цифровых эквивалентов ниже. Теперь попробуйте на Листе 1 кликнуть два раза по любой ячейке.

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

Второй вариант вызова диалога с помощью .

Создадим вторую процедуру на Листе 2. Код процедуры следующий:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean )
Dim mes
mes = MsgBox("Текст содержащий вопрос", vbYesNoCancel + vbInformation + vbDefaultButton2, "Название сообщения")

Select Case mes
Case vbYes: Selection = "Нажата ДА"
Case vbNo: Selection = "Нажата НЕТ"
Case vbCancel: Selection = "Нажата Отмена"
End Select

В этом случае результат вызова MsgBox присваивается переменной mes и далее в Select Case ищется совпадение и согласно совпадения, выполняются действия.

Вот и все. Ниже прикреплен готовый пример, рассмотренный в этой статье.

Перечень констант и значений, возвращаемых функцией MsgBox:

Константа

Значение

Кнопка

vbCancel

Отмена

Прервать

Повтор

vbIgnore

Пропустить

Использование функции MsgBox в VBA Excel, ее синтаксис и параметры. Значения, возвращаемые функцией MsgBox. Примеры использования.

Функция MsgBox предназначена в VBA Excel для вывода сообщения в диалоговом окне, ожидания нажатия кнопки и возврата значения типа Integer, указывающего на то, какая кнопка была нажата. Для упрощения восприятия информации, в этой статье не рассматриваются параметры, связанные с контекстной справкой и модальностью диалогового окна MsgBox.

Синтаксис функции

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

Обязательным параметром функции MsgBox является Prompt , если Buttons иTitle явно не указаны, используются их значения по умолчанию. Кроме того, если необязательные параметры не указаны и возвращаемое значение не присваивается переменной, сообщение не заключается в скобки:

Пример 1

Sub Test1() MsgBox "Очень важное сообщение!" End Sub

Параметры функции

*Максимальная длина параметра Prompt составляет примерно 1024 знака и зависит от их ширины.

**В Excel по умолчанию в заголовке MsgBox выводится надпись «Microsoft Excel».

Константы параметра «Buttons»

Тип и количество кнопок

Константа Описание Значение
vbOKOnly Отображается только кнопка OK. 0
vbOKCancel Отображаются кнопки OK и Cancel (Отмена). 1
vbAbortRetryIgnore Отображаются кнопки Abort (Прервать), Retry (Повторить) и Ignore (Пропустить). 2
vbYesNoCancel Отображаются кнопки Yes (Да), No (Нет) и Cancel (Отмена). 3
vbYesNo Отображаются кнопки Yes (Да) и No (Нет). 4
vbRetryCancel Отображаются кнопки Retry (Повторить) и Cancel (Отмена). 5

Стиль значка

Константа Описание Значение
vbCritical Отображается значок Critical - Критичное сообщение, сообщение об ошибке. 16
vbQuestion Отображается значок Question - Сообщение с вопросом. 32
vbExclamation Отображается значок Exclamation - Предупреждающее сообщение. 48
vbInformation Отображается значок Information - Информационное сообщение. 64

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

Пример 2

Sub Test2() Dim a As Integer a = MsgBox("Критичное сообщение, сообщение об ошибке", 16) a = MsgBox("Сообщение с вопросом", 32) a = MsgBox("Предупреждающее сообщение", 48) a = MsgBox("Информационное сообщение", 64) End Sub

Кнопка по умолчанию

Возвращаемые значения

Константа Кнопка Значение
vbOK OK 1
vbCancel Отмена 2
vbAbort Прервать 3
vbRetry Повторить 4
vbIgnore Пропустить 5
vbYes Да 6
vbNo Нет 7

Значение, возвращаемое функцией MsgBox, используется для выбора дальнейших действий исполняемой программы в зависимости от нажатой кнопки.

Для третьего примера зададим следующие параметры первой функции MsgBox:

  • Prompt = «Выберите кнопку!»
  • Buttons = 323 (3 (vbYesNoCancel) + 64 (vbInformation) + 256 (vbDefaultButton2))
  • Title = «Выбор кнопки»

Вторая функция MsgBox используется как простое информационное сообщение с параметрами по умолчанию.

Пример 3

Sub Test3() Dim a As Integer a = MsgBox("Выберите кнопку!", 323, "Выбор кнопки") If a = 6 Then MsgBox "Вы нажали кнопку: Да" ElseIf a = 7 Then MsgBox "Вы нажали кнопку: Нет" Else MsgBox "Вы нажали кнопку: Отмена" End If End Sub

В этом примере, в зависимости от нажатой кнопки в первом диалоговом окне, во втором сообщении выводится название нажатой кнопки. Обратите внимание, что вторая кнопка в открывшемся первом окне MsgBox выделена по умолчанию и срабатывает при нажатии клавиши «Enter».

А что будет, если первое диалоговое окно из третьего примера закрыть крестиком? Проверьте сами.

1. Функция InputBox

Функция InputBox имеет следующий синтаксис:

Переменная = InputBox (Приглашение[, Заголовок] [, по_умолчанию] [, Xпоз] [, Yпоз] [, файл_справки, содержание] )

Эта функция требует обязательного задания только аргумента Приглашение Значение аргумента Приглашение – единственный обязательный аргумент этой функции, служит текстовая строка, которая отображается в диалогом окне ввода в качестве сообщения. Этот текст должен быть заключен в двойных кавычках.

Аргумент Заголовок

Аргумент по_умолчанию задает значение, которое отображается по умолчанию в поле ввода, пока пользователь не введет свое значение. Если этот аргумент опустить, то поле ввода отображается пустым.

Необязательные аргументы Xпоз и Yпоз задают положение окна ввода на экране. Аргументы файл_справки и содержание

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

2. Функция MsgBox

Окно сообщения создаётся функцией MsgBox, которая имеет следующий синтаксис:

Переменная = MsgBox (Приглашение[, Кнопки] [, Заголовок [, файл_справки, содержание] )

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

Dim i As Integer

Результатом работы такого кода в VBA будет диалоговое окно с тремя кнопками «Да», «Нет», «Отмена» и с пиктограммой восклицательный знак в желтом треугольнике.

Если не указан аргумент Кнопки , то VBA предлагает только одну кнопку «OK». Аргумент Кнопки позволяет управлять следующими параметрами окна сообщения:

¨ Количеством кнопок в окне.

¨ Типы кнопок и и х размещение в окне.

¨ Пиктограммы, отображаемые в окне.

¨ Какая кнопка назначается по умолчания.

¨ Режим (модальность) окна сообщения.

В табл.1 показаны возможные установки для этого аргумента. Первая группа значений устанавливает число и тип кнопок. Вторая позволяет выбрать пиктограмму, отображаемую в окне. Третья назначает кнопку по умолчанию. Четвертая группа устанавливает режим окна сообщения. Для создания конечного значении аргумента Кнопки можно использовать только одно значение из каждой группы, объединив их значком «плюс».

Группа Константа Значение Описание
Группа 1 vbOKOnly Отображает только кнопку OK (установка по умолчанию)
VbOKCancel Отображает кнопки OK и Отмена
VbAbortRetryIgnore Отображает кнопки Стоп, Повтор и Пропустить.
VbYesNoCancel Отображает кнопки Да, Нет и Отмена
vbYesNo Отображает кнопки Да и Нет
VbRetryCancel Отображает кнопки Повтор и Отмена
Группа 2 VbCritical Отображает запрещающую пиктограмму
VbQuestion
VbExclamation Отображает предупреждающую пиктограмму
VbInformation Отображает информационную пиктограмму
Группа 3 VbDefaultButton1 Первая кнопка – кнопка по умолчанию
VbDefaultButton2 Вторая кнопка – кнопка по умолчанию
VbDefaultButton3 Третья кнопка – кнопка по умолчанию
VbDefaultButton4 Четвертая кнопка – кнопка по умолчанию
Группа 4 VbApplicationModal Режим приложения: пользователь должен закрыть окно сообщения перед продолжением работы в текущем приложении
VbSystemModal Системный режим: все приложения недоступны, пока пользователь не закроет окно сообщения
Дополнительная группа vbMsgBoxHelpButton Отображает кнопку Справка
vbMsgBoxSetForeground Делает окно сообщения окном переднего плана
vbMsgBoxRight Отображает окно сообщения, выровненным по правому краю окна приложения
vbMsgBoxRtlReading Для иврита и арабского языка указывает, что текст должен выводиться справа налево.

Табл. 1. Установки для аргумента Кнопки функции MsgBox

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

Аргумент Заголовок используется для задания текста, который помещается в строке заголовка окна ввода. Если этот аргумент не задан, то в строке заголовка отображается Microsoft Excel.

Аргументы файл_справки и содержание используются в том случае, если вы создаете для своего приложения собственную систему справок.

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

Возвращаемое значение Кнопка
OK
Отмена
Стоп
Повтор
Пропустить
Да
Нет

Табл. 2. Значения, возвращаемые функцией MsgBox

Наилучший тип Переменной возвращаемой функцией MsgBox является Integer.

Объекты Range и Cells

В VBA ячейки рабочего листа трактуются как объект Range. Это наиболее часто используемый объект.

Объект Range при работе с ячейками использует формат А1.

Формат А1. Ссылка состоит из имени столбца (обозначаются буквами от А до IV, 256 столбцов максимально) и номера строки (от 1 до 65536). Например, А77. Для ссылки на диапазон ячей указываются адреса левой верхней и правой нижней ячейки диапазона, разделенных двоеточием. Например, В10:В20, 7:7 (все ячейки в 7-й строке), 5:10 (все ячейки между 5-й и 10-й строками включительно), D:D (все ячейки в столбце D), H:J (все ячейки между столбцами H и J включительно). Признаком абсолютной ссылки является знак доллара перед именем строки или столбца

Объект Cells при работе с ячейками использует формат R1C1.

Формат R1C1 . В формате R1C1, после буквы «R» указывается номер строки ячейки, после буквы «С» -- номер столбца. Например, абсолютная ссылка R1C1 эквивалентна абсолютной ссылке $A$1 для формата А1. Для задания относительной ссылки указывается смешение по отношению к активной ячейке. Смешение указывается в квадратных скобках. Знак указывает направление смещения. Например, R[-3]С (относительная ссылка на ячейку, расположенную на три строки выше в том же столбце). RС (относительная ссылка на ячейку, расположенную на две строки ниже и на два столбца правее). R2С2 (абсолютная ссылка на ячейку, расположенную во второй строке и во втором столбце). R[-1] (относительная ссылка на строку, расположенную выше текущей ячейки), R (абсолютная ссылка на текущую строку).

Полный адрес ячейки может содержать также имя рабочего и адрес книги. После имени листа ставится знак «!», а адрес книги заключается в квадратные скобки. Например: [Книга1.xls]Лист5!D$2.

В качестве объекта Range и могут выступать:

§ отдельная ячейка;

§ выделенный диапазон ячеек;

§ несколько выделенных диапазонов ячеек (т.е. совокупность несмежных диапазонов);

§ строка и столбец;

§ трехмерный диапазон (т.е. состоящий из диапазонов, расположенных на разных рабочих листах).

Свойства объекта Range и Cells

Свойства Описание и допустимые значения
Value Возвращает значение из ячейки или диапазона (в ячейку или диапазон): X=Range(“A1”).Value Range(“A1”).Value=10
Name Возвращает имя диапазона: Range(“B1:B4”).Name=”Приложение”
Address Возвращает текущее положение диапазона
Count Возвращает количество ячеек в диапазоне
Offset Возвращает величину смещения одного диапазона относительно другого
Resize Позволяет изменять текущее выделение диапазона
CurrentRegion Возвращает текущий диапазон, содержащий указанную ячейку и ограниченный пустыми строкой и столбцом.
WrapText True (False) – разрешает (не разрешает) перенос текста при вводе в диапазон.
EntireColumn, EntireRow Возвращает строку и столбец.
ColumnWidth, RowHeight Возвращает ширину столбцов и высоту строк диапазона.
Font Возвращает объект Font (шрифт). Например: With Worksheets(“Z3”).Range(“F10”).Font .Size=22 .Bold=True .Italic=True End With
Formula Формула в формате А1. Например, так можно ввести формулу в ячейку C2: Range(“C2”).Formula=”=$B$2+$A$2”
FormulaLocal Формула в формате А1 с учетом языка пользователя (для неанглоязычных версий Excel). Например: Range(“C1”).FormulaR1C1= “=ПИ ()”
FormulaR1C1 Формула в формате R1C1. Например, Range(“C1”).FormulaR1C1= “=R1C1+2”
FormulaR1C1Local Формула в формате R1C1 с учетом языка пользователя (для неанглоязычных версий Excel).
HorizontalAlignment Горизонтальное выравнивание. Возможные значения: xlHAlignGeneral (обычное), xlHAlignCenter (по центру), xlHAlignCenterAcrossSelection (по центру выделения), xlHAlignJustify (по ширине), xlHAlignRight (по правому краю), xlHAlignLeft (по левому краю) и другие.
VerticalAlignment Вертикальное выравнивание. Возможные значения: xlVAlignBottom (по нижнему краю), xlVAlignCenter (по центру), xlVAlignTop (по верхнему краю) и другие.

Методы объекта Range и Cells

Методы Действия
Address Возвращает адрес ячейки.
AutoFit Автоматически настраивает ширину столбца и высоту строки. Например: Range(“B1:B3”).Columns.AutoFit Использование свойства Columns или Rows в данном случае необходимо, так как значением диапазона должны быть строки или столбцы, иначе будет выдаваться ошибка.
Clear Очищает диапазон. Например: Range(“В1:В20”).Clear
Copy Копирует диапазон в другой диапазон или буфер обмена (если параметр Destination не задан). Например, так можно скопировать значения диапазона с одного листа (Л1) на другой (Л2): Worksheets(“З1”).Range(“D1:D5”).Copy Destination:=Worksheets(“P2”).Range(“D5”)
Cut Копирует диапазон с удалением (вырезает) в другой диапазон или буфер обмена (если параметр Destination не задан). Например, скопируем диапазон ячеек с удалением в буфер обмена: Worksheets(“Лист1”).Range(“D1:E5”).Cut
Delete Удаляет диапазон. Параметр Shift определяет направление сдвига ячеек при удалении. Например: Range(“B6:D6”).Delete Shift:=xlShiftToLeft
Insert Вставляет ячейку или диапазон ячеек. Например, так можно вставить строку перед шестой строкой на листе «Лист2»: Worksheets(“Лист2”).Rows(6).Insert
Select Выделяет диапазон: Range(“A1:C7”).Select

Методы объекта Range и Cells, реализующие команды Excel

Методы Действия
DataSeries Создает прогрессию. DataSeries(rowcol,date,step,stop,trend) Вручную метод выполняется с помощью команды Правка\Заполнить\Прогрессия
AutoFill Автозаполнение. Автоматически заполняет ячейки диапазона элементами последовательности: Объект(Диапазон, Тип).
AutoFilter Автофильтр. Реализует запрос на фильтрацию данных на рабочем листе: Объект.AutoFilter(Поле, Условие1, Оператор, Условие2) Соответствует команде Данные\Фильтр\Автофильтр.
AdvancedFilter Расширенный фильтр. Соответствует команде Данные\Фильтр\Расширенный фильтр.
Consolidate Объединение данных из нескольких диапазонов в одну итоговую таблицу. Соответствует команде Данные\Консолидация.
Find Поиск данных. Вручную вызывается командой Правка\Найти.
TblGoalSeek Подбор параметра. Вручную выполняется с помощью команды Сервис\Подбор параметра.
Sort Сортировка данных. Вручную выполняется с помощью команды Данные\Сортировка
Subtotal Добавляет промежуточные итоги. Вручную вызывается командой Данные\Промежуточные итоги.

Примечание . Следует особо отметить, что в VBA (в отличие от Excel) операция присваивания выполняется независимо от статуса ячейки и не меняет его. Т.е. для присвоение значения ячейке (или для получения её значения) совсем не обязательно, чтобы эта ячейка была активной (вспомните, что в Excel перед вводом в ячейку её необходимо активизировать), не станет она активной (если до этого не была таковой) и после присвоения ей какого-либо значения.

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

Для организации вывода информации используется встроенная функция MsgBox .

Рассмотрим варианты ее применения.

1. y = Sqr(16)

MsgBox y

2. S = 99

MsgBox (“ S= ” & S)

это знак конкатенации амперсанд ;

применяется для объединения нескольких строк в одну

3. a = 5: b = 101

MsgBox ("a=" & a & " " & "b=" & b)

4. MsgBox ("a=" & a & Chr(13) & "b=" & b)

с помощью этой функции вводится символ перехода

на новую строку (преобразует число в символ)

Работа с объектами Excel

Объектная модель Excel представляет собой иерархию объектов, подчиненных одному объекту Application , который соответствует самому приложению Excel. Объектами Excel являются рабочие книги, рабочие листы, диаграммы, диапазоны ячеек, ячейки и т. д.

VBA может программно управлять любым из этих объектов.

Каждый объект обладает набором свойств , методов и событий.

Свойство – это характеристика или параметр объекта.

Метод – это действие, которое может выполнять объект.

Событие – это действие, на которое объект реагирует автоматически.

Управлять объектом в VBA можно 3 путями:

    изменяя свойства объекта;

    активизируя метод, связанный с объектом;

    определяя процедуру, запуск которой произойдет как отклик на событие.

Вывод информации в ячейку Excel

Ячейка как объект Excel в VBA-программе обозначается Cells(i, j) , где i – номер строки, j – номер столбца электронной таблицы.

Y

Значение Y будет выведено на активный лист рабочей книги Excel в ячейку B 3

= 0.01

Cells(3, 2) = Y

С

Переменной B будет присвоено значение,

которое хранится в ячейке С5

(т. е. содержимое ячейки С5 )

читывание информации из ячейки Excel

B = Cells(5, 3)

Средство vba для ввода информации

Ввод информации от пользователя осуществляется через диалоговое окно ввода. Реализуется с помощью встроенной функции InputBox .

Dim x As Single

x= Val (InputBox ("Введите x"))

Функция InputBox возвращает последовательность символов, введенную в поле ввода (15 ) как данные типа String (строковый). Встроенная функция Val() преобразует строковое значение из поля ввода в числовое.

Линейные вычислительные процессы

Линейный алгоритм характеризуется строгой последовательностью реализации блоков в порядке их расположения в схеме – сверху – вниз. Условные блоки отсутствуют. Каждый блок выполняется однократно.

Пример 1 Вычислить значение функции

при k = 33,5 x = 17

1. Составим алгоритм решения задачи.

2. В окне редактора кода введем программный код:

Option Explicit

Sub Линейный_процесс ()

Dim k As Single, x As Single, y As Single ‘объявление переменных

x = Val (InputBox ("Введите значение x"))

y = k * Exp(Sin(x))

MsgBox "y=" & y ‘ вывод результата в диалоговое окно

End Sub

Команда Option Explicit обязывает объявлять все переменные в данной программе. Может размещаться только в разделе объявлений модуля.



Статьи по теме: