VBA для тех кто любит думать


VBA и Office XP - часть 61


 

04_04.bmp

Рис. 4.4. Область описаний

 

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

В области работы с типами данных Visual Basic for Applications имеет еще одну достаточно уникальную особенность. При написании программ на этом языке можно, как ни странно, даже вообще не обьявлять специально переменные! Просто включите их в текст программы по мере надобности, и тогда Visual Basic for Applications автоматически присвоит им специальный тип для таких случаев - "Variant". В переменной, имеющей этот универсальный тип, может содержаться что угодно - хоть число, хоть текст. Однако следует помнить, что обьем памяти, отводимый под переменную типа Variant, весьма велик, - значительно больше, чем под любой другой тип данных, поэтому определять все переменные как тип Variant не всегда рационально. Впрочем, учитывая большой обьем оперативной памяти на современных компьютерах, потери памяти от использования Variant'а ощутимы крайне редко.

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

Если вы не обьявляете переменную заранее, а просто упоминаете ее в программе на Visual Basic for Application, то она обьявляется "автоматически", и так же "автоматически" ей присваивается тип Variant. Подобная тактика написания программы может показаться неплохой, так как убыстряет этот процесс, однако, к сожалению, необьявленные переменные не могут быть использованы в других модулях или формах - при таком использовании их значения будут потеряны[4].




Начало  Назад  Вперед