Lielākā daļa programmēšanas valodu atbalsta masīvus, tostarp VBA. Masīvs ir grupa, mainīgie, kas ir kopīga nosaukumu. Varat atsaukties uz noteiktu mainīgo masīvā, izmantojot masīva nosaukumu un indeksa numuru iekavās. Piemēram, varat definēt 12 virkņu mainīgo masīvu, lai saglabātu gada mēnešu nosaukumus. Ja piešķirat masīvam nosaukumu MonthNames , varat atsaukties uz pirmo masīva elementu kā Mēnešu nosaukumi (1), uz otro elementu kā Mēnešu nosaukumi (2) un tā tālāk.
Masīvu deklarēšana
Lai varētu izmantot masīvu, tas ir jādeklarē. Bez izņēmumiem. Atšķirībā no parastajiem mainīgajiem, VBA ļoti stingri ievēro šo noteikumu. Jūs deklarējat masīvu ar Dim vai Public paziņojumu, tāpat kā jūs deklarējat parasto mainīgo. Tomēr jums ir arī jānorāda masīva elementu skaits. To var izdarīt, norādot pirmo indeksa numuru, atslēgvārdu Kam un pēdējo indeksa numuru — visu iekavās. Šis piemērs parāda, kā deklarēt 100 veselu skaitļu masīvu:
Dim MyArray (1 līdz 100) kā vesels skaitlis
Kad deklarējat masīvu, varat izvēlēties norādīt tikai augšējo indeksu. Ja izlaižat zemāko indeksu, VBA pieņem, ka tas ir 0. Tāpēc abi šie priekšraksti deklarē vienu un to pašu 101 elementa masīvu:
Dim MyArray (0 līdz 100) kā vesels skaitlis
Dim MyArray (100) kā vesels skaitlis
Ja vēlaties, lai VBA pieņemtu, ka 1 (nevis 0) ir zemākais indekss jūsu masīviem, iekļaujiet šādu paziņojumu sadaļā Deklarācijas moduļa augšpusē:
Opciju bāze 1
Šis paziņojums liek VBA izmantot 1 kā pirmo indeksa numuru masīviem, kas deklarē tikai augšējo indeksu. Ja šis paziņojums ir pieejams, šādi priekšraksti ir identiski, un abi deklarē 100 elementu masīvu:
Dim MyArray (no 1 līdz 100) kā vesels skaitlis
Dim MyArray (100) kā vesels skaitlis
Daudzdimensiju masīvi
Visi iepriekšējos piemēros izveidotie masīvi ir viendimensijas masīvi. Uztveriet viendimensijas masīvus kā vienu vērtību rindu. VBA izveidotajiem masīviem var būt pat 60 dimensijas, lai gan masīvā reti ir nepieciešams vairāk par divām vai trim dimensijām. Šis piemērs deklarē 81 vesela skaitļa masīvu ar divām dimensijām:
Dim MyArray (no 1 līdz 9, 1 līdz 9) kā vesels skaitlis
Varat uzskatīt, ka šis masīvs aizņem 9 x 9 matricu — lieliski piemērots visu skaitļu glabāšanai Sudoku mīklā.
Lai atsauktos uz konkrētu elementu šajā masīvā, ir jānorāda divi indeksa skaitļi (līdzīgi kā tā “rinda” un “kolonna” matricā). Šis piemērs parāda, kā varat piešķirt vērtību šī masīva elementam:
MyArray (3, 4) = 125
Šis paziņojums piešķir vērtību vienam masīva elementam. Ja domājat par masīvu kā 9 x 9 matricu, tas piešķir 125 elementam, kas atrodas matricas trešajā rindā un ceturtajā kolonnā.
Lūk, kā deklarēt trīsdimensiju masīvu ar 1000 elementiem:
Dim My3DArray (no 1 līdz 10, 1 līdz 10, 1 līdz 10) kā vesels skaitlis
Trīsdimensiju masīvu var uzskatīt par kubu. Ir grūtāk vizualizēt vairāk nekā trīs dimensiju masīvu.
Dinamiskie masīvi
Varat arī izveidot dinamiskus masīvus. Dinamiskajam masīvam nav iepriekš iestatīta elementu skaita. Deklarējiet dinamisku masīvu ar tukšu iekavu kopu:
Dim MyArray () Kā vesels skaitlis
Lai varētu izmantot šo masīvu, jums ir jāizmanto ReDim priekšraksts, lai norādītu VBA, cik elementu ir masīvā. Parasti elementu skaits masīvā tiek noteikts koda darbības laikā. Varat izmantot ReDim paziņojumu neierobežotu skaitu reižu, mainot masīva izmēru tik bieži, cik nepieciešams. Šis piemērs parāda, kā mainīt elementu skaitu dinamiskā masīvā. Tas pieņem, ka mainīgais NumElements satur vērtību, kuru jūsu kods aprēķināja.
Redim MyArray (no 1 līdz numElements)
Pārveidojot masīvu, izmantojot ReDim, tiek izdzēstas visas pašlaik masīva elementos saglabātās vērtības. Varat izvairīties no veco vērtību iznīcināšanas, izmantojot atslēgvārdu Saglabāt. Šis piemērs parāda, kā varat saglabāt masīva vērtības, mainot masīva izmērus:
ReDim Preserve MyArray (no 1 līdz numElements)
Ja MyArray pašlaik ir desmit elementi un jūs izpildāt iepriekšējo paziņojumu ar NumElements, kas vienāds ar 12, pirmie desmit elementi paliek neskarti un masīvā ir vieta diviem papildu elementiem (līdz skaitlim, kas ietverts mainīgajā NumElements). Ja numElements ir vienāds ar 7, pirmie septiņi elementi tiek saglabāti, bet atlikušie trīs elementi tiek iznīcināti.