Arbejd med controls i LibreOffice Basic
Her vil jeg vise dig hvordan du laver en form i LibreOffice Calc med LibreOffice Basic. Det kan du bruge til at lave felter og knapper, der kommunikerer med regnearket.
I VBA er en af de mest geniale ting at du kan lave en form (formular), hvor du kan sætte felter og knapper på. Dette gør at du kan lave et mindre program inde i Excelarket. Her vil jeg vise dig hvordan du gør det samme i LibreOffice Calc med sproget Basic.
Indsæt knap og tekstfelt
Først skal du lige have vist toolbaren med Form controls. Denne viser du ved at vælge View -> Toolbars -> Form Controls. Med denne kan du trække forskellige felter og knapper direkte ind i regnearket.
I nedenstående eksempel har jeg trukket en tekstboks (Text Box) og en knap (Push Button) over i regnearket.
Hvis jeg vil ændre på titlen på knappen højreklikker jeg på den og vælger Control. Så kan jeg ændre teksten på knappen under “Label”. Teksten under “Name” er selve navnet på knappen, og det er her du angiver hvad knappen i selve Basic koden skal hedde. Du kan også angive andre ting, som fx. om knappen skal være synlig eller ej.
Tilknyt makro til knap
Nu vil jeg gerne sørge for at den makro der hedder “Test1” som jeg har anvendt i introduktionsartiklen til LibreOffice Basic, bliver eksekveret når jeg trykker på knappen. Dette gør jeg ved at højreklikke på knappen og vælge Control. Så vælger jeg fanen Events. Her kan jeg vælge de makroer der skal eksekveres ved specielle events.
Den event der eksekveres når jeg trykker på en knap hedder “Execute action”. Du trykker nu på de tre prikker til højre for denne og vælger den makro der skal tilknyttes.
Herefter kan du ude på control toolbaren trykke på knappen “Design Mode”. Når du gør dette kan du prøve at trykke på knappen, og du vil så se at den kode der står i makroen bliver udført.
Dette fortæller kort hvordan du indsætter controls i selve regnearket og tilknytter dem til en makro. Du vil også kunne lave en formular, hvor controls kan sættes på, men det kommer jeg ind på i en anden artikel.