Читаем VBA для чайников полностью

Представленная ниже процедура типа Function использует функции DateDiff и DateSerial для вычисления возраста персоны в годах. Чтобы избежать появления ошибок при выполнении программы, можете добавить в программный код проверку типа данных того значения, которое получит аргумент, задающий дату рождения (используйте для этого функцию IsDate), а также проверку того, что полученная дата рождения не находится в будущем.

Function WhatAge(dateDateOfBirth As Date)

Dim intAge As Integer ' задайте Long, чтобы допустить возраст > 255 intAge = DateDiff ("yyyy", DateDateOfBirth, Date)

‘ проверяется, день рождения в этом году был или нет:

If DateSerial ( Year ( Date), Month(DateDateOfBirth), _

Day(DateDateOf Birth)) > Date Then

intAge = intAge – 1

End If

WhatAge = intAge

End Function

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

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

Две VBA-функции, MsgBox и Input Box, обеспечивают неплохие возможности базового уровня для передачи пользователю сообщений и получения от него ответов.

* Функция MsgBox отображает окно с сообщением, но не только - она позволяет определить, на какой из двух (или больше) кнопок щелкнул пользователь, чтобы закрыть окно.

* Функция Input Box отображает окно с сообщением и полем, в котором пользователь имеет возможность напечатать ответ.

Формально синтаксическая конструкция функции MsgBox выглядит так:

MsgBox(сообщение[, кнопки] [, заголовок] [, файл_справки, раздел])

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

В своей простейшей форме функция MsgBox действует как оператор. От вас требуется только напечатать его в отдельной строке и добавить сообщение, которое требуется отобразить. Например:

MsgBox "Это проверка работы MsgBox."

В результате выполнения такой строки VBA отобразит на экране окно с сообщением, подобное показанному на рис. 11.2 (пример А).

Рис. 11.2. Три простых окна сообщения

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

Сообщение может быть также переменной или выражением. Как обычно, VBA автоматически конвертирует за вас числовые значения и даты в отображаемые символы. Например, следующий фрагмент программного кода вполне работоспособен, а результат показан на рис. 11.2 (пример Б):

intWishCount = 3

datWhen = Format(Now, "Short date")

strInfol = "Ha "

strInfo2 = " осталось желаний: "

MsgBox strlInfol & datWhen & strInf o2 & intWishCount

Чтобы отобразить сообщение в несколько строк, добавьте в сообщение символы перехода на новую строку (их ASCII-код равен 13) с помощью функции Chr (пример В на рис. 11.2).

MsgBox "Это первая строка." & Chr(13) & "Это вторая строка.'

Можно разбить текст многострочного сообщения и на столбцы, используя символы табуляции (их ASCII-код равен 9).

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

С пиктограммой ваше окно сообщения будет выглядеть немного "круче", чем простенькие окна с рис. 11.2. Показанное на рис. 11.3 окно сообщения содержит пиктограмму критической ситуации (эта пиктограмма обычно вызывает у пользователя некоторое волнение).

Рис. 113. Непростое окно сообщения

По умолчанию окно сообщения имеет только кнопку ОК, но можно в него добавить и кнопки с надписями Отмена, Да, Нет, Стоп, Повтор и Пропустить в различных комбинациях. На рис. 11.3 как раз показано окно с одной из таких комбинаций кнопок.

Перейти на страницу:

Все книги серии Для чайников

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных