VBA 1 – 03 VBA-editoren Egenskabsvinduet

vba introkursus

Gennemgang af egenskabsvinduet i VBA-editoren. Eksempel med navngivning og synlighed af ark.




I egenskabsvinduet er der en liste, hvor der på venstre side er de forskellige egenskaber, der tilhører et objekt, og på højre side er der de værdier, som der er for egenskaberne.

De værdier, der typisk kan vælges er binære, altså sandt eller falsk, talværdier, tekst, og valg på lister.

Egenskaberne tilhører nogle objekter. Så det vil sige, at hhvis man har et ark, så har det en række egenskaber. Tilsvarende, så hvis man har valgt en formular, så har det også en række egenskaber.

Vi arbejder videre med den Excelfil, som vi brugte under lektion 2. Det er en fil med tre ark, der hedder Test1, Test2 og Test3.

Hvis vi vælger det øverste ark, så får vi de egenskaber, som der hører til det ark. Bemærk at brugeren, som ser arket ude i brugerfladen, ser navnet som Test1, hvilket er det navn, der står står som egenskab i egenskabsvinduet og med Test1 som værdi.

Men selve arket har også et navn, som er angivet i parentes, og dette er Ark1. Det skyldes at Microsoft Excel objekter som værende ark to forskellige navne, ét som brugeren kan se, og ét som brugeren ikke kan se. Det er gavnligt, da det gør det nemmere med store file med mange ark, da man kan navngive sine ark ift. den funktion, det har.

Antag at det har ark er en fakturadatabase. Vi vil da gerne kalde arket for ArkFaktura. Så kan vi navngive det i egenskabsvinduet, uden at brugeren kan se det. Vi kan så sige, at det navn som brugeren kan se, det er ”Lister”. Brugeren har nu et navn på arket, der hedder lister, mens selve arket hedder ArkFaktura.

Det er god skik at sørge for at kalde de bagvedliggende ark for enten ”ark” som på dansk eller ”sheet” på engelsk, og så efterfølgende deres funktion, da det giver mulighed for tydeligt at fremgå, hvad arket anvendes til.

Der er to egenskaber, som jeg gerne vil gå lidt mere i dettaljer med. Det første er det, der hedder EnableSelection, hvilket giver brugeren rettigheder til at vælge celler i arket eller ej. Der er tre valg på listen. Der er det, der hedder NoRestrictions, hvor brugeren kan vælge alle de celler, der er i arket. Der er det, der hedder UnlockedCells, hvilket betyder, at brugeren kun kan vælge de celler, som ikke er låst. Og der er den, der hedder NoSelection, hvilket betyder at brugeren ikke kan vælge nogen celler i arket overhovedet. Det er muligt at lægge en række begrænsninger ind i arket i forhold til, hvad brugerne skal kunne rette i arket alene på baggrund af denne egenskab.

En af de andr egenskaber, der er lidt mere spændende er synligheden for arket – den egenskab der hedder visible. De fleste, der arbejder med Excel, ved nok ,at det er muligt at skjule et ark ved at højreklikke på arket nede på arkfanen og trykke på skjul. Det er derefter muligt at få arket frem igen ved at højreklikke på fanerne igen og så trykke vis, valge arket på listen, og trykke OK. Så kommer arket frem igen.

Denne egenskab er det også muligt at rette i VBA-editoren, hvor man har en liste for synlighed – men her er det tre valg. Det er simpelthen muligt at vælge, om et ark skal være synligt, om det skal være skjult, eller om det skal være meget skjult. Det sidste betyder, at brugeren ikke har  mulighed for at finde arket frem, medmindre vedkommende åbner VBA-editoren. Hvis vi vælger denne mulighed, vil vi bemærke, at arket, der hedder ”Lister” nu ikke længere fremgår blandt fanerne i bunden af vinduet. Og hvis vi højreklikker på fanerne, har vi heller ikke mulighed for at trykke på på ”Vis” og få arket frem igen. Man skal da igennem VBA-editoren for at få arket vist igen.

En af fordelene ved egenskaberne, det er at man ved at køre forskellige koder i de modulern, man sætter op, har mulighed for at rette i de her egenskaber undervejs. Det kan gøre det muligt for den peron, der sidder og programmerer, at sige, at man ud fra en række kriterier kan vælge at sige, at ens ark skal være låst, så brugeren ikke kan vælge nogen celler, eller det her ark skal sle tikke være synligt, og brugeren må heller ikke have mulighed for at finde det frem.