Стив Каммингс - VBA для чайников
- Название:VBA для чайников
- Автор:
- Жанр:
- Издательство:Компьютерное издательство Диалектика
- Год:2002
- Город:Москва
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стив Каммингс - VBA для чайников краткое содержание
Эта книга поможет освоить интегрированную среду разработки VBA и научиться программировать в VBA с использование объектов, их свойств, методов и событий. Обсуждаемые приемы программирования иллюстрируются примерами, которые можно сразу же опробовать на практике. Полученные знания вы сможете применить как для настройки и усовершенствования популярный офисных приложений, включая приложения Office XP, так и для создания собственных приложений.
Книга рассчитана на тех, кто собирается быстро и без лишних усилий научиться программировать для Windows, используя VBA.
VBA для чайников - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Dim decvar Pi As Variant
decvar Pi = CDec("3.1415926535897932384626433833" )
Если в программе выполняются вычисления с использованием значений некоторых переменных, то тип данных этих переменных должен быть достаточно емким, чтобы хранить результат вычисления, даже если этим переменным сам результат и не присваивается. Для примера внимательно ознакомьтесь со следующим фрагментом программного кода:
Dim bytBytei As Byte
Dim bytByte2 As Byte
Dim intInteger As Integer
byuBytel = 255 ' максимальное значение для типа Byte
bytByte2 = 1
intInteger = bytBytei + bytByte2 ' ошибка!
Здесь, несмотря на то, что переменная intInteger вполне допускает хранение значения, соответствующего результату вычисления, в последней строке этого фрагмента программного кода VBA зафиксирует ошибку переполнения. Чтобы вычисления выполнялись, необходимо в данном случае хотя бы вместо одной из переменных типа Byte использовать переменную типа Integer.
Когда использовать логические переменные
Переменные типа Boolean могут хранить только два значения: True (в числовом представлении это 1) или False (0). Используйте переменные типа Boolean, когда нужно выяснить, какое из двух альтернативных условий имеет место в данный момент. Например, можно использовать переменную boolВключенс, которая должна принимать значение True (Истина), когда что бы то ни было, к чему переменная относится, включено, и значение False (Ложь), когда это нечто выключено.
Другим полем для использования переменных типа Boolean является определение констант со значениями True и False. Тогда имена переменных могут быть вполне нейтральными, а вот константы должны явно указывать на существование двух альтернатив для этих переменных. В общем, проще показать пример, чем пытаться объяснить:
Dim boolПузо As Boolean
Const Прикрыто As Boolean = True
Const Видно As Boolean = False
If boolПузо = Видно Then
НемногоПощекотать
End If
Вот вам один просто замечательный совет! Чтобы переключить на противоположное значение переменной или свойства объекта типа Boolean, используйте ключевое слово Not. Например, в Word вы можете включить или отключить отображение на экране схемы документа с помощью такой строки программного кода:
ActiveWindow. Docurr.entMap = Not ActiveWindow. DocumentMap
Работа с денежными значениями
Главная цель использования типа данньк Currency (Денежный)- получение точного результата. Хотя типы данных Single и Double с плавающей запятой и могут хранить числа с дробной частью - какими обычно бывают денежные значения - вычисления, выполняемые над числами с плавающей запятой, часто порождают небольшие ошибки, а это заставляет сильно нервничать тех, кто занят подсчетом денежных знаков.
Адаптация к местному формату представления денежных величин
Одна из сильных сторон VBA - это возможность автоматической настройки форматов представления дат и денежных величин в соответствии с местными стандартами. В правильно построенную программу вам не придется включать символы типа S, Г или J - VBA добавит именно тот символ, который нужен, основываясь на выборе языка и страны, которые были сделаны с помощью панели управления Язык и стандарты в Windows.
Рассмотрим, например, следующий фрагмент программного кода:
Const ccurMoneyTalks As Currency = 5463.72
MsgBox format ( ccur MoneyTalks, "Currency")
В результате выполнения этого фрагмента в США в окне сообщения появится
$5,463/72, а та же программа во Франции отобразит 5463, 72F.
Используемая здесь функция Format достаточно подробно рассматривается в главе 31.
Чтобы отобразить содержимое переменной в виде правильно представленного денежного значения, совсем не обязательно объявлять эту переменную переменной типа Currency. Функция Format с именованным форматом
"Currency" замаскирует любое числовое значение под доллары, франки или что-то другое, имеющее хождение в вашем регионе.
Другие возможности использования типа данных Currency
Даже если вы и не собираетесь работать с деньгами, переменные типа Currency будут полезны в следующих случаях:
* хранение больших чисел, выходящих за границы диапазона, допустимого для целых чисел типа Long;
* вычисления с большими числами, когда требуется более высокая точность, чем та, которая обеспечивается типами данных с плавающей запятой.
Значения типа Currency могут иметь до 19 значащих цифр, из них 15 - до запятой и 4 - после (положение десятичного разделителя фиксировано).
Работа с датами
Тип данных Date используется для удобства при работе со значениями дат и времени. Где-то в своих глубинах VBA кодирует дату и время в виде некоторого числа вроде 35692,9201273148. которое, очевидно, совершенно ничего не говорит большинству простых смертных. К счастью, можно полностью игнорировать это обстоятельство и работать в своих программах с датами и временем точно так же, как вы это делаете на бумаге или в текстовом редакторе.
При этом нужно только помнить, что значения дат и времени- их буквальные значения - необходимо помещать в ограничивающую их пару знаков "решетки'". Например, в следующем фрагменте программного кода сначала объявляются две переменные типа Date, а затем им присваиваются значения:
Dim dateWeddingDay As Date, dateTimeOfCeremony As Date dateWeddingDay = #4/20/99#
dateTimeOfCeremony = #3:15:00 PM#
Как и в случае данных типа Currency. VBA автоматически отображает даты в формате, соответствующем местному стандарту. Например, выражение Format (#10/24 /89#, "Long date") в США порождает строку "Tuesday. October 24, 1989", а в России - "24 Октябрь 1989 г.".
Ввод дат
Печатать буквальные значения дат можно почти в любом виде, какой только возможен. Например, допустимо любое из следующих представлений:
#09/1/1998#
#Sep 25, 93#
#Janua 9 1905
Если редактор Visual Basic распознает введенные вами данные как допустимое значение даты, эти данные будут конвертированы в "краткое представление даты", заданное в соответствующей панели управления Windows. Если вы не укажете год, VBA добавит текущий год за вас. Такое конвертирование происходит сразу же, как только вы переместите текстовый курсор в другую строку, а не откладывается до момента, когда программа начнет выполняться.
Время имеет значение
Буквальные значения времени вводятся в формате #часы:минуты:секунды символ#, где символ - это AM или РМ (означающие до полудня и после полудня соответственно). Например:
#10:45:00 РМ#
#2:3:30 АМ#
Печатать незначащие нули, как в #01:02:03 РМ#, не обязательно, но VBA добавит их за вас, как только вы переместите курсор в другую строку программного кода. Точно так же вы можете опустить ненужные вам элементы в представлении времени, и VBA дополнит ваш ввод. Например, вы можете ввести только секунды, напечатав что-нибудь вроде #0:0:23#, a VBA изменит введенное значение на стандартное представление времени - в данном случае на #12:00:23 АМ#.
Математика дат и времени
Сложение и вычитание дат в рамках обычных арифметических операций в VBA возможны, но, к сожалению, результаты такого сложения и вычитания не соответствуют обычным представлениям о датах. Например, #3/19/2005# - #3/19/2004#н е дает в результате '"1 год", как желательно было бы иметь, а дает #12/3 0/1900#. Такой результат обусловлен спецификой представления значений дат в VBA, но я не собираюсь здесь утомлять вас обсуждением этой специфики. Все, что вам нужно, - это знать о существовании в VBA двух функций, DateAdd ( ) и DateDiff ( ), которые должны полностью удовлетворить ваши потребности в математике дат. Использование этих функций обсуждается в главе 11.
Читать дальшеИнтервал:
Закладка: