Читаем 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 как раз показано окно с одной из таких комбинаций кнопок.

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

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

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

1001 совет по обустройству компьютера
1001 совет по обустройству компьютера

В книге собраны и обобщены советы по решению различных проблем, которые рано или поздно возникают при эксплуатации как экономичных нетбуков, так и современных настольных моделей. Все приведенные рецепты опробованы на практике и разбиты по темам: аппаратные средства персональных компьютеров, компьютерные сети и подключение к Интернету, установка, настройка и ремонт ОС Windows, работа в Интернете, защита от вирусов. Рассмотрены не только готовые решения внезапно возникающих проблем, но и ответы на многие вопросы, которые возникают еще до покупки компьютера. Приведен необходимый минимум технических сведений, позволяющий принять осознанное решение.Компакт-диск прилагается только к печатному изданию книги.

Юрий Всеволодович Ревич

Программирование, программы, базы данных / Интернет / Компьютерное «железо» / ОС и Сети / Программное обеспечение / Книги по IT
C++
C++

С++ – это универсальный язык программирования, задуманный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных деталей С++ является надмножеством языка программирования C. Помимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя определения новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на легко поддающиеся контролю части. Такой метод построения программ часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользователем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиляции. Программирование с применением таких объектов часто называют объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы. Ключевым понятием С++ является класс. Класс – это тип, определяемый пользователем. Классы обеспечивают сокрытие данных, гарантированную инициализацию данных, неявное преобразование типов для типов, определенных пользователем, динамическое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности программы и проверки типов. В языке есть также усовершенствования, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, параметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определяемые пользователем. С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддерживающих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C. Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Бьёрн Страуструп , Бьярн Страустрап , Мюррей Хилл

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