Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ ОФИСНОГО ПРОГРАММИРОВАНИЯ И ЯЗЫК VBA - 2....doc
Скачиваний:
82
Добавлен:
17.12.2018
Размер:
1.62 Mб
Скачать

Форматирование данных. Функции группы Format

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

Функция Format.

Функция возвращает строку, отформатированную в соответствии с указаниями, заданными при вызове. Ее синтаксис:

Format(expression[, format[, firstdayofweek[, firstweekofyear]]])

Ее параметры:

  • expression - любое правильное выражение.

  • Format - имя встроенного параметра или определение пользовательского формата. Если параметр опущен, то применяется формат, зависящий от типа первого аргумента

  • Firstdayofweek и firstweekofyear - их смысл был описан, когда мы рассматривали работу с датами

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

? VBA.Format(55)

55

? VBA.Format(5.5)

5,5

? VBA.Format(-52.125, "##0.#0")

-52,13

? VBA.Format(-52.125, "000.##0")

-052,125

? VBA.Format(1152.125, "#,##0.#0")

1 152,13

? VBA.Format(0.52125, "0.##0%")

52,125%

Несколько примеров форматирования строк:

? VBA.Format("5.4")

05.04.99

? VBA.Format("5,4")

5,4

? VBA.Format("Мария", ">")

МАРИЯ

? VBA.Format("Мария", "<")

мария

? VBA.Format("Мария", "> Это ")

Это МАРИЯ

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

? VBA.Format(VBA.Time, "Long Time")

16:24:57

? VBA.Format(VBA.Time, "Short Time")

16:25

? VBA.Format(VBA.Time, "hh/mm/ss")

16.26.03

? VBA.Format(VBA.Date, "Long Date")

9 Май 1999 г.

? VBA.Format(VBA.Date, "Short Date")

09.05.99

? VBA.Format(VBA.Date, "yy/mm/dd")

99.05.09

Другие функции форматирования

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

  1. FormatCurrency - возвращает денежное выражение, используя денежный знак.

  2. FormatDataTime - возвращает дату или время.

  3. FormatNumber - возвращает выражение, отформатированное как число.

  4. FormatPercent - возвращает выражение, заданное в процентах, с указанием знака процента.

Программный код большинства примеров данной лекции можно найти в проектах, доступных для просмотра: BookOne9, DocOne9.

Описание и создание процедур

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

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