Стив Каммингс - VBA для чайников
- Название:VBA для чайников
- Автор:
- Жанр:
- Издательство:Компьютерное издательство Диалектика
- Год:2002
- Город:Москва
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Стив Каммингс - VBA для чайников краткое содержание
Эта книга поможет освоить интегрированную среду разработки VBA и научиться программировать в VBA с использование объектов, их свойств, методов и событий. Обсуждаемые приемы программирования иллюстрируются примерами, которые можно сразу же опробовать на практике. Полученные знания вы сможете применить как для настройки и усовершенствования популярный офисных приложений, включая приложения Office XP, так и для создания собственных приложений.
Книга рассчитана на тех, кто собирается быстро и без лишних усилий научиться программировать для Windows, используя VBA.
VBA для чайников - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
intB = 0
End If
For Each objCbar In CommandBars
If objCbar.Name = Моя панель инструментов Then
If objCbar.Visible = False Then
objCbar.Visible = True
end If
End If
Next objCbar
End If
Оба эти фрагмента дают один результат, но отступы во втором фрагменте позволяют сразу сказать для каждого из операторов End If, какой из расположенных выше операторов If. . .Then будет ему парой. В результате легче отследить путь выполнения программы в зависимости от сложившихся условий.
Правила для отступов
В каких же строках программного кода следует сделать отступ и какой по величине? Нужно установить отступы одного размера для связанных по смыслу операторов, чтобы связь между такими операторами была зрительно очевидной. Конкретнее говоря, операторы, выполняющиеся вместе при каком-то общем условии, должны иметь и одинаковые отступы.
Например, если VBA выполняет операторы внутри конструкции If. . .Then. . .Else.
Do ... Loop или For Next как одну группу, то операторы такой группы должны иметь один и тот же отступ. Вот подходящий пример программного кода:
Do While intC 20
intA = intA + 1
If intA = intB Then
intA – 5
intB – 10
.Else
intA = intB
intC = 20
.End If
Loop
VBA выполняет оператор intA = intA + 1 и структуру If.. .Then. .. Else прикаждом проходе структуры Do... Loop. По этой причине я использовал один и тот же отступ и для оператора intA = intA + 1, и для трех операторов, задающих структуру If. . .Then. . .Else ( If. . .Then, Else и End If ). Два оператора, следующие непосредственно за оператором If . . .Then, будут выполняться, если только intA = intE, поэтому эти два оператора получают дополнительный отступ, как и два оператора, следующие за Else.
Обратите внимание, что управляющие структуры типа Do ... Loop и If . . . Then. . .Else всегда состоят как минимум из двух операторов (один должен определить начало структуры, а второй - ее конец). Дня структуры Do. . .Loop завершающий оператор Loop, а для If... Then . . .Else - это End If. Если в рамках структуры есть другие операторы, для них следует использовать тот же отступ. Это позволит ясно различить и саму структуру, и содержащиеся в ней подчиненные операторы. (Управляющие структуры будут подробно рассмотрены в главе 8.)
Как сделать отступ
Для добавления отступа в строке программного кода нажмите клавишу пробела или Tab, чтобы сдвинуть текстовый курсор вправо. Можно задать расстояние, на которое клавиша Tab сдвигает курсор, если выбрать Tools=Options. В диалоговом окне Options (Параметры) на вкладке Editor (Редактор) есть поле Tab Width (Отступ табуляции), где можно впечатать число, соответствующее количеству пробелов. Поскольку пространства в окне редактора Visual Basic не слишком много, лично я установил отступ табуляции, равный 3 пробелам, хотя можно указать любое число от 1 до 32.
Если по каким-то причинам нажимать клавишу табуляции вам не слишком удобно, всегда можно сдвинуть начало строки вправо или влево с помощью предлагаемых VBA кнопок Indent (Добавить отступ) и Outdent (Удалить отступ) соответственно. Эти кнопки применяются не только к отдельным строкам, но и к выделенным фрагментам текста, так что одним щелчком можно добавить или убрать отступ целого блока. Обратите внимание на то, что при использовании этих кнопок положение точки ввода в строке игнорируется - всегда увеличивается или уменьшается отступ сразу всей строки.
Автоматические отступы
Чтобы до минимума уменьшить объем выполняемой вами работы, редактор Visual Basic автоматически устанавливает отступ в новой строке, равный отступу в предыдущей. Если в новой строке отступ должен быть меньше, просто нажмите клавишу удаления символа перед курсором (клавишу Back Space ). Если навязанная помощь вас слишком уж раздражает, автоматическое создание отступов можно отменить на вкладке Editor в диалоговом окне Tools=Options.
Свободное пространство - это хорошо
Оставленные между группами родственных операторов пустые строки намекают на важность выделенного таким образом фрагмента программного кода. Кроме того, это уменьшает плотность программы и еще упрощает зрительное восприятие программного кода (рис. 6.2).
Не пользуйтесь прокруткой без необходимости!
Одна строка окна программного кода может содержать примерно 300 символов (наверное, вы удивитесь, если я скажу, что максимальное число символов равно 308), так что при желании можно вместить в одну строку довольно длинный оператор. Однако очевидно и то, что удобнее иметь дело с операторами, полностью видимыми в рамках окна программного кода, когда текст в окне не приходится прокручивать туда-сюда.
Использование символа продолжения строки
Чтобы продолжить оператор на следующую строку, поместите в конце текущей строки символ подчеркивания ( _ ). Например, следующие три строки программного кода в совокупности определяют один оператор:
sngWackyNumber = Cos(12 * 57.5 / Sqr(intMyTinyNumber + _
intMyBigNuraber) + CustomDataMassage (sngRawInfo, 12) + _
(bytFirstTuesdaylnAugust * curLastPayCheck) + 1)
Не забудьте перед символом подчеркивания, который называют еще символом продолжения строки, оставить пробел, поскольку без такого пробела вы получите от VBA сообщение об ошибке типа недопустимый символ (invalid character).
И еще одно предостережение: следите, чтобы символ подчеркивания не оказался внутри кавычек, определяющих строку текста (если, конечно, вы не собираетесь включить символ подчеркивания в строку). Подробную информацию об использовании строк символов, включая и то, как можно продолжить их на новую строку, вы найдете в главе 7.
Не используйте операторы в несколько строк
Хотя операторы в несколько строк и предпочтительнее длинных операторов в одну строку, не умещающихся в рамках окна программного кода, первые тоже нельзя назвать идеальными. Если VBA и не испытывает неудобств при обработке таких строк, то большинство людей воспринимают операторы в несколько строк как дополнительный источник путаницы.
Если окно программного кода не совсем уж микроскопическое, практически всегда можно разделить длинный оператор на несколько достаточно коротких, в совокупности выполняющих ту же работу, что и исходный. Возможно, для этого потребуется создать несколько дополнительных переменных, в которых будут храниться результаты промежуточных вычислений, но это не слишком большая цена за достижение лучшей прозрачности программного кода. Например, предыдущий пример программного кода можно переписать так:
sngTempl = Sqr(intMyTinyNumber + intMyBigNumber)
sngTemp2 = 12 * 57.5 / sngTempl
sngTemp3 = CustomDataMassage(sngRawInfo, 12)
sngTeinp4 = bytFirstTuesdaylnAugust * curLastPayCheck
sngWackyNumber = Cos(sngTemp2 + sngTemp3 + sngTemp4 + 1)
Этот фрагмент программного кода длиннее и использует несколько дополнительных переменных, но зато за представленными в этом фрагменте вычислениями легче следить. Кроме того, если результат вычислений окажется неправильным, для локализации ошибки можно будет проследить за каждым шагом вычисления в отдельности - ясно, что подобный пошаговый анализ невозможен, когда результат вычисления является результатом выполнения одного длинного оператора.
Читать дальшеИнтервал:
Закладка: