Вход/Регистрация
VBA для чайников
вернуться

Каммингс Стив

Шрифт:

* Методы встроенных объектов. В этой группе курьезно выглядит метод Print, единственный для объекта Debug и предназначенный для направления вывода в окно немедленного выполнения команд (окно Immediate) в редакторе Visual Basic. Для этого используются операторы типа

Debug.Print (strПосланиеМарсианина)

* Лично я не вижу никаких преимуществ в связывании команды Print с объектом, но сам по себе метод Print оказывается очень полезным. Подробно он обсуждается в главе 14. Здесь же замечу, что, хотя VBA и не инкапсулирует файлы, как объекты, можно дополнительно установить программную надстройку, которая позволит управлять файлами и работать с их содержимым на основе объектно-ориентированного подхода (подробности - в главе 12).

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

Таблица 11.1. Примеры встроенных функций, операторов и методов

Команда

Тип

Выполняемые действия

Randomize

Оператор

Инициализирует генератор случайных чисел

Sqr ( число)

Функция

Возвращает значение квадратного корня числа

Format ( строка )

Функция

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

Date

Оператор

Устанавливает системную дату

Date

Функция

Возвращает текущую системную дату

Err . Raise

Метод объекта Err

Генерирует ошибку выполнения с заданным кодом данных

Форматирование данных

VBA-функции Format форматируют данные любого из встроенных типов по указанному образцу для отображения их на экране или на печати. С помощью этих функций очень просто отображать значения дат в виде короткого (19.12.99), среднего (19-дек-99) или длинного формата даты (19 декабря 1999 г.), или любого из нескольких других предлагаемых VBA форматов (VBA хранит значения дат в виде совершенно неудобоваримых чисел). Подобные трюки можно выполнять и с числовыми значениями, и со строками. На самом деле Format конвертирует предложенное вами значение в новую строку, добавляя в нее символы, необходимые для представления данных в нужном виде.

Функция Format предлагается и в VBA 5, и в VBA 6, однако VBA 6 может похвастать еще четырьмя новыми родственными функциями, каждая из которых предназначена для своего конкретного типа данных.

Работа с функцией Format

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

В упрощенной форме синтаксис функции Format выглядит так (здесь опущены два необязательных и редко используемых аргумента, относящихся к датам, - о них вы можете узнать из справки VBA):

Format(выражение,"формат")

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

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

Чтобы использовать функцию 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:

  • Читать дальше
  • 1
  • ...
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: