Читаем Интернет-журнал "Домашняя лаборатория", 2007 №3 полностью

Переменная, объявленная как Public, может использоваться и программами из других модулей и форм, при этом она своего значения не теряет, а переменные, объявленные как Private или Dim, могут использоваться только в программах модуля, в котором они объявлены. При наличии такой же переменной в программах другого модуля ее значение не будет передаваться в них при их вызове из программы модуля, где она объявлена.



Рис. 2.2.Область описаний программы.


Как Public или Private переменная может быть объявлена только в разделе описаний переменных. С помощью же инструкции (то есть команды, не выполняющей реальных действий) Dim она может быть объявлена и в тексте программы, но тогда ее другие модули уже использовать не смогут никак.

Объявление типа переменных нужно программе, чтобы она заранее отвела под них именно столько оперативной памяти, сколько нужно для размещения именно такой переменной. Для логической — хватит и одного бита, для буквенной — нужен целый байт, а для строковой или числовой — значительно большие объемы. Можно вообще не объявлять специально переменные, включая их в текст программы по мере надобности, так как тогда VBA присвоит им автоматически специальный для таких случаев тип данных Variant и отведет для каждой переменной максимально возможную область памяти, что, впрочем, не имеет особо отрицательного значения из-за большого объема оперативной памяти на современных компьютерах.

Тип данных Variant отличается еще и тем, что переменные с таким типом автоматически могут преобразовываться в нужный другой тип, например, если переменная "х" имеет тип Variant и значение 2 (число), то после команды "x=Str(x)", которая преобразует число в строку, она уже будет иметь значение "2", то есть текстовая строка с цифрой "2". Такое преобразование было бы невозможно, если бы переменная "х" была объявлена как Integer.

Может показаться, что определять все переменные как тип Variant или вообще не включать в модуль раздел описаний является очень хорошим решением, однако стоит помнить, что необъявленные переменные не могут быть использованы в других модулях или формах, а, кроме того, переменные типа Variant занимают очень много места в оперативной памяти. Можно запретить для себя использование необъявленных переменных, вставив в начало модуля, в верх раздела описаний инструкцию Option Explicit, и тогда программа остановится и перейдет в режим отладки, если вдруг наткнется на такую переменную.

Стоит быть внимательнее с типами данных, так как в некоторых случаях неправильное их использование может дать ошибку. Например, переменная с типом Integer не может превысить значение 32 767; если же надо использовать большие числа, то следует определить ее тип как Long, а если она может быть еще и дробной, то — Double.



Процедуры и функции


В принципе любая программа для каждого конкретного случая может быть написана в виде одного длинного блока текста. Однако такой код будет крайне нерациональным. Например, в программе необходимо несколько раз подсчитать сумму всех членов арифметической прогрессии для разных чисел. Можно, конечно, считать результат каждый раз по известной формуле, но это очень усложнит код. А если неизвестно, для какого количества чисел надо считать эту сумму (например, это определяет пользователь), то написание программы становится почти невозможным. Поэтому в VBA, как и в других современных языках программирования, есть понятие процедур и функций, иначе называемых подпрограммами.

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

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

Функция же — это программа, которая не только получает из другой программы какую-нибудь информацию, но и возвращает той программе определенное значение, которое может быть ею в дальнейшем использовано.

В VBA любая процедура, получающая данные из другой программы, имеет следующий формат:

Sub "Название процедуры"("Получаемая переменная" As "Тип данных получаемой переменной")

"Текст процедуры"

End Sub

Получаемых переменных может быть несколько. Для каждой из них желательно указать ее тип, но это можно опустить.

Вызов процедуры происходит так же, как и вызов любой команды VBA, — путем указания ее названия и передаче ей соответствующих значений переменных, указываемых после имени процедуры в команде ее вызова, как, например, в этой программе:

Sub Main

  Dim a As Integer

      a = 1

      uvelich a, 3

      MsgBox a

End Sub


Sub uvelich(b As Integer, с As Integer)

       b = b + с

End Sub

Перейти на страницу:

Похожие книги

Гостиная
Гостиная

Эта книга предназначена для тех, кто хотел бы собственными руками обустроить свою гостиную, сделав ее уютной и удобной. Здесь вы найдете исчерпывающие советы по созданию гармоничного интерьера, удобному освещению, размещению ковров, цветов и картин, а также других мелочей, которые превратят вашу гостиную в комфортабельную комнату, удовлетворяющую потребностям каждого члена семьи.В этой книге также даны подробные рекомендации по ремонту гостиной, которые помогут осуществить задуманное вами преобразование. Методы, описанные здесь, вполне доступны каждому. Надеемся, что эта книга поможет вам подойти к обустройству гостиной творчески, а ремонтные работы доставят истинное удовольствие.

Линиза Жалпанова , Линиза Жувановна Жалпанова , Наталья Михайловна Сухинина , Наталья Сухинина

Сделай сам / Дом и досуг
Справочник настоящего мужчины
Справочник настоящего мужчины

В книге собраны и обобщены практические рекомендации и инструкции, которые помогут мужчине оставаться настоящим «Джеймсом Бондом» как в экстремальных условиях, так и в повседневной жизни. Рассмотрено: как организовать слежку и наблюдение, уходить от погони, как общаться с сотрудниками правоохранительных органов, как обезопасить себя на улицах и в подворотнях мегаполиса, какие охранные системы применять для квартиры и офиса, как выжить на природе, как добывать пищу с помощью подручных средств и многое другое. Рассказано, как звонить с мобильного телефона при разряженном аккумуляторе, не бояться собак, готовить напитки и коктейли и др. Все рекомендации разбиты по темам.

Андрей Петрович Кашкаров

Сделай сам / Хобби и ремесла / Прочая справочная литература / Дом и досуг / Словари и Энциклопедии