У овом водичу ћемо покрити глобалне променљиве. Променљива у ВБА може имати различит опсег. Опсег променљиве се заснива на њеној позицији у коду и начину на који је декларисана. Опсег променљиве означава њену видљивост и где се може користити.
Променљива на нивоу процедуре
Ове променљиве се могу користити само у оквиру подпроцедуре или функције у којој су декларисане. Морате декларисати променљиву на нивоу процедуре користећи кључну реч Дим. Осим тога, морате га поставити у потпроцедуру или функцију од интереса. Начин на који бисте прогласили променљиву на нивоу процедуре приказан је у доњем коду:
1234567 | Суб ДецларингАПроцедуреЛевелВариабле ()Дим сомеНумбер Ас ИнтегерсомеНумбер = 5МсгБок сомеНумберЕнд Суб |
Резултат је:
Ову променљиву можете користити само у оквиру подпроцедуре под називом ДецларингАПроцедуреЛевелВариабле (). Пошто се налази у овој подпроцедури и користили смо кључну реч Дим. Ако га позовете из друге подпроцедуре, добићете следећу грешку:
Променљива нивоа модула
Променљиву нивоа модула можете користити у било којој од потпроцедура или функција у оквиру истог модула. Декларацију променљиве морате поставити на врх модула у одељку Декларације, испод наредбе Оптионс Екплицит, и користити кључну реч Дим:
Када покренемо другу подпроцедуру уместо поруке о грешци, добијамо следећи резултат у ћелији А1 радне свеске:
Променљива глобалног нивоа
Глобалну променљиву можете користити у својим модулима, функцијама, потпроцедурама и класама. Глобалну променљиву декларишете у одељку Декларације, испод наредбе Оптионс Екплицит и користећи кључну реч Глобал. Начин на који декларишете променљиву глобалног нивоа приказан је испод. Обје подпроцедуре у Модулу 1 могу користити ову варијаблу.
Пошто је ова променљива глобална променљива, можете је користити и у Модулу 2:
Када покренете овај код из Модула 2, добићете следећи резултат: