Већина програмских језика подржава низове, укључујући ВБА. Низ је група варијабли које деле име. Позивате се на одређену променљиву у низу користећи име низа и број индекса у заградама. На пример, можете да дефинишете низ од 12 варијабли низа које садрже називе месеци у години. Ако низу дате назив МонтхНамес , први елемент низа можете позвати као МонтхНамес (1), други елемент као МонтхНамес (2) и тако даље.
Декларисање низова
Пре него што будете могли да користите низ, морате га декларисати. Без изузетака. За разлику од нормалних варијабли, ВБА је веома строг у погледу овог правила. Низ декларишете са Дим или Публиц наредбом, баш као што декларишете регуларну променљиву. Међутим, такође морате да наведете број елемената у низу. То радите тако што ћете навести први број индекса, кључну реч За и последњи број индекса — све унутар заграда. Следећи пример показује како да декларишете низ од 100 целих бројева:
Дим МиАрраи(1 до 100) као цео број
Када декларишете низ, можете изабрати да наведете само горњи индекс. Ако изоставите доњи индекс, ВБА претпоставља да је 0. Према томе, обе следеће изјаве декларишу исти низ од 101 елемента:
Дим МиАрраи (0 до 100) као цео број
Дим МиАрраи (100) као цео број
Ако желите да ВБА претпостави да је 1 (уместо 0) доњи индекс за ваше низове, укључите следећу изјаву у одељак Декларације на врху вашег модула:
Опциона основа 1
Ова изјава приморава ВБА да користи 1 као први број индекса за низове који декларишу само горњи индекс. Ако је ова изјава присутна, следеће изјаве су идентичне, обе декларишу низ од 100 елемената:
Дим МиАрраи (1 до 100) као цео број
Дим МиАрраи (100) као цео број
Вишедимензионални низови
Низови креирани у претходним примерима су једнодимензионални низови. Замислите једнодимензионалне низове као једну линију вредности. Низови које креирате у ВБА могу имати чак 60 димензија — иако вам ретко треба више од две или три димензије у низу. Следећи пример декларише низ од 81 целих бројева са две димензије:
Дим МиАрраи (1 до 9, 1 до 9) као цео број
Можете замислити да овај низ заузима матрицу 9 к 9 — савршено за чување свих бројева у Судоку слагалици.
Да бисте упућивали на одређени елемент у овом низу, потребно је да наведете два индексна броја (слично његовом „реду“ и његовој „колони“ у матрици). Следећи пример показује како можете да доделите вредност елементу у овом низу:
МиАрраи (3, 4) = 125
Ова изјава додељује вредност једном елементу у низу. Ако размишљате о низу у смислу матрице 9 к 9, ово додељује 125 елементу који се налази у трећем реду и четвртој колони матрице.
Ево како да декларишете тродимензионални низ, са 1000 елемената:
Дим Ми3ДАрраи (1 до 10, 1 до 10, 1 до 10) као цео број
Можете замислити тродимензионални низ као коцку. Визуелизација низа од више од три димензије је теже.
Динамички низови
Такође можете креирати динамичке низове. Динамички низ нема унапред постављени број елемената. Декларисајте динамички низ са празним скупом заграда:
Дим МиАрраи () као цео број
Пре него што будете могли да користите овај низ, морате користити РеДим изјаву да кажете ВБА колико елемената низ има. Обично се број елемената у низу одређује док је ваш код покренут. Наредбу РеДим можете користити било који број пута, мењајући величину низа онолико често колико је потребно. Следећи пример показује како да промените број елемената у динамичком низу. Претпоставља се да променљива НумЕлементс садржи вредност коју је израчунао ваш код.
РеДим МиАрраи (1 до НумЕлементс)
Када поново димензионишете низ помоћу РеДим-а, бришете све вредности које су тренутно ускладиштене у елементима низа. Можете избећи уништавање старих вредности коришћењем кључне речи Пресерве. Следећи пример показује како можете да сачувате вредности низа када поново димензионишете низ:
РеДим Пресерве МиАрраи (1 до НумЕлементс)
Ако МиАрраи тренутно има десет елемената, а ви извршите претходну наредбу са НумЕлементс једнаким 12, првих десет елемената остаје нетакнуто, а низ има места за два додатна елемента (до броја садржаног у променљивој НумЕлементс). Међутим, ако је НумЕлементс једнак 7, првих седам елемената се задржава, али преостала три елемента нестају.