Аргумент выражение должен содержать выражение, представляющее число, строку или дату, которые вы хотите форматировать (т.е. отобразить в подходящей форме). Ясно, что этот аргумент обязателен.
Аргумент формат и является тем аргументом, который выполняет реальную работу. Как видно из следующего примера, аргумент формат нужно заключить в кавычки.
Чтобы использовать функцию Format, присвойте ее переменной либо свойствам Value или Caption элемента управления в форме. Например, оператор
lblDateMessage.Caption = "Сегодня " & _
Format(Now, "Long Date")
отображает текст "Сегодня 19 март 2001 г." в виде текста надписи элемента управления lblDateMessage (в предположении, что сегодня 19 марта 2001 года).
Использование встроенных форматов для функции Format
В табл. 11.2 приводятся именованные встроенные форматы для данных различных типов в VBA. Используйте их как аргумент в функции Format. He забудьте при этом заключить в кавычки имя выбранного вами формата (из первого столбца таблицы).
Таблица 11.2. Именованные форматы для использования с функцией Format
Имя формата
|
Описание вывода
|
Пример (соответствует установке языка Русский в панели управления)
|
Числовой
|
General Number
|
Число без выделения разрядов тысяч
|
2001,5599
|
Currency
|
Число с выделением разрядов тысяч и с двумя знаками после десятичного разделителя, а также с символом денежной единицы
|
2 001,56р.
|
Fixed
|
Как минимум один знак слева и два знака справа от десятичного разделителя (без выделения разрядов тысяч)
|
3390,10
|
Standard
|
Число с выделением разрядов тысяч и как 1 минимум одним знаком слева и двумя знаками справа от десятичного разделителя
|
323,45
|
Percent
|
Число, умноженное на 100, с двумя знаками справа от десятичного разделителя и знаком процентов (%) справа
|
12,54%
|
Scientific
|
Число в стандартном виде для научных расчетов
|
1,23Е+02
|
Логический
|
Yes/No
|
Нет, если значение равно 0, иначе Да
|
Да
|
True/False
|
Ложь, если значение равно 0, иначе Истина
|
Истина
|
On/Off
|
Выкл, если значение равно 0, иначе Вкл
|
Вкл
|
Дата/время
|
General Date
|
Дата и/или время, в зависимости от значения, представленного в соответствии с установками в панели управления
|
15.03.9817:27:45
|
Long Date
|
Дата в виде, заданном в панели управления для полного формата даты
|
15 Март 2001 г.
|
Medium Date
|
Дата в виде, заданном в панели для среднего формата даты
|
управления 15-мар-01
|
Short Date
|
Дата в виде, заданном в панели управления для краткого формата даты
|
15.03.01
|
Long Time
|
Время (часы, минуты и секунды) в виде, заданном в панели управления для полного формата времени
|
17:27:45
|
Medium Time
|
Время (часы и минуты) в 12-часовом формате с метками до/после полудня, заданными в панели управления
|
05:27
|
Short Time
|
Время (часы и минуты) в 24-часовом формате
|
17:27
|
Можно создать свои собственные форматы, собрав их из символов, имеющих специальные значения для аргумента формат. Например, чтобы отобразить строки текста символами верхнего или нижнего регистров, используйте функцию Format с аргументами ">" или "<" соответственно. За неимением места я не могу описывать все эти специальные символы- вы найдете их самостоятельно, открыв сначала раздел Format Function (функция Format ) в файле справки VBA, а затем щелкнув на ссылке See Also (см. также) и просмотрев разделы User-defined Formats (пользовательские форматы). Но чтобы не совсем вас разочаровывать, я привожу следующий пример с парой пользовательских форматов в действии. Кроме того, этот же пример иллюстрирует использование еще одной встроенной функции VBA - Iif:
MsgBox "Сейчас " & Format(Now, "h:nn") & _
". Это время " & Iif(Format(Now, "a/p") = "a", _
"до обеда.", "после обеда.")
Если вы выполните этот программный код до обеда, оператор отобразит на экране строку типа "Сейчас 9:07. Это время до обеда". После обеда вы получите нечто похожее на сообщение, показанное на рис. 11.1. (Кстати, функция MsgBox обсуждается ниже в этой же главе в разделе "Отображение окон сообщений".)
Рис. 11.1. Окно сообщения
Теперь объяснения. В первой функции Format аргументом формат является "h:nn".
Символ h соответствует стандарту отображения часа одной цифрой, когда имеется в виду время до 10:00. После двоеточия пп задает отображение минут с незначащим нулем, если прошло меньше 10 минут после начала часа.
Читать дальше