Het afgelopen jaar is er veel veranderd in mijn financiële systeem. Ik heb afscheid genomen van mijn oude trouwe Excel-spreadsheets. Zij hebben mijn financiën voor mij bijgehouden sinds 2003. Maar het was tijd voor verandering. Het was tijd voor open-source software, met meer aandacht voor privacy en veiligheid in deze barre tijden waarin de kunstmatige intelligentie onze wereld definitief in de afgrond zal kieperen en de mensheid zal vernietigen…
Sinds 2015 werkte ik in mijn Excel-spreadsheets met macro’s. Die zorgen ervoor dat het bijhouden van mijn financiën grotendeels geautomatiseerd gebeurde. Zo min mogelijk menselijke handelingen. Bij de overstap naar LibreOffice wilde ik er uiteraard niet op achteruit gaan. Ik wilde de functionaliteit van mijn macro’s gewoon meenemen.
Het ene BASIC is het andere niet
En dat gaat zo maar niet. Microsoft gebruikt Visual Basic for Applications, VBA. En in LibreOffice kun je kiezen. Er is LibreOffice Basic, gebaseerd op StarBasic, een robuuste (lees: oude) BASIC-variant. En je kunt ook gebruikmaken van modernere talen als Python en JavaScript.
Er zit ook een optie in LibreOffice voor het draaien van VBA-code. Die is de afgelopen jaren fors verbeterd, maar werkte niet met het merendeel van mijn code. Bovendien wilde ik niet alleen van Excel af, ik wilde ook af van het gesloten Excel-bestandsformaat. Ik wilde overstappen naar het Open Document Format. Dus geen Excelbestanden draaien in een LibreOffice omgeving.
Lang heb ik overwogen om Python te gaan gebruiken. Ik was me zelfs al aan het verdiepen in deze programmeertaal. Maar uiteindelijk heb ik toch besloten om dat niet te doen. Ik ben ‘gewoon’ met StarBasic aan de slag gegaan. De voornaamste reden hiervoor is simpel. Ik wil graag dat mijn spreadsheets werken in een standaardinstallatie van LibreOffice, zonder dat ik nog apart software moet installeren om een extra programmeertaal te ondersteunen. Met StarBasic is dat het geval.
Ik heb er voor gekozen om de spreadsheets (voor zover ze niet vervangen werden door GnuCash) vanaf nul opnieuw op te bouwen. De relevante data is uiteraard wel gekopieerd naar de nieuwe spreadsheet, maar de macro’s en rapportages zijn volledig opnieuw opgebouwd. Geen sporen uit Excel…
Visual Basic (VBA) versus StarBasic
Basic is Basic, zou je denken. Maar dat is toch echt niet het geval. Het is meteen duidelijk dat de logica hetzelfde is, maar de syntax is behoorlijk anders. Een simpel voorbeel: in Excel roep je een cel aan met (rij, kolom). In LibreOffice (je raadt het al) is dat (kolom, rij). En Excel begint te tellen bij 1, LibreOffice begint bij 0. StarBasic is wat meer ‘basic’ dan het meer ‘gepolijste’ en doorontwikkelde VBA. Het is ook authentieker. Meer object-georiënteerd. Eigenlijk bevalt het mij wel.
Met de hulp van documentatie en DuckDuckGo had ik de belangrijkste verschillen snel onder de knie. Het scheelde natuurlijk dat ik de logica van mijn oude macro’s kon hergebruiken. Ik weet welke stappen ik in elk macro moet zetten om tot het gewenste eindresultaat te komen. Zo heb ik bijvoorbeeld de logica van mijn grafieken-module hergebruikt. Eén algemene macro die de standaardgrafiek helemaal voorbereidt, en daarna een aparte macro voor de data en de specifieke wijzigingen per grafiek. Die maakt het ten eerste makkelijker om een consistente stijl te bewaken / aan te passen en, ten tweede, het scheelt een hoop programmeerwerk.
Het belangrijkste verschil: je merkt dat de gebruikersgemeenschap van LibreOffice en OpenOffice toch wat kleiner en zelfredzamer is dan de Excel-gemeenschap. Er zijn online dan ook minder documentatie en programmeervoorbeelden te vinden. Je moet dus echt meer experimenteren en zelf uitvinden. Gelukkig vind ik dat soort ‘puzzelen’ juist wel fijn.
En tegelijkertijd kun je ook met LibreOffice en StarBasic alles doen. Er is letterlijk nog geen enkele functionaliteit geweest die ik niet kon herbouwen. Daar ga ik nog wel tegenaan lopen, maar dat is geen beperking van Basic. Excel kent natuurlijk de online aandelenfuncties waarmee ik bijvoorbeeld de koersinformatie in mijn spreadsheet bijwerk. Dat soort functies heeft LibreOffice natuurlijk niet. Gelukkig zijn er alternatieven, en heb ik dit soort dingen eigenlijk niet meer nodig nu ik GnuCash en Portfolio Performance gebruik.
Vernieuwd: Wast nu nog schoner…
En uiteraard heb ik de gelegenheid genomen om een aantal langgekoesterde wensen ook te implementeren. Zo kan ik nu een aantal opties voor grafieken aan- en uitzetten met vinkjes. Voor elke grafiek is er nu ook met één druk op de knop een versie in dark mode. Daar wil ik met mijn blog misschien ook standaard naartoe, maar de diverse dark-mode plugins werken nog niet helemaal mee (lees: één grote commerciële bende). Maar ik kan in mijn spreadsheets ook met één vinkje een Geldnerd logo toevoegen aan grafieken die ik op mijn blog wil gebruiken.
Het was een behoorlijke operatie. Met maar één verliezer. Het Excel-icoon, ooit mijn meestgebruikte applicatie, staat nu eenzaam te verpieteren in een hoekje van mijn werkblad. Maar zo is het leven nu eenmaal…. Had ‘ie maar niet bij Microsoft moeten gaan werken.
Ben jij wel eens gewisseld naar een nieuwe programmeertaal?
Mooi werk! Zal ook best veel hobbytijd in gaan zitten, maar hobby is leuk en geeft je een voldoening en dat straalt er hierboven helemaal vanaf!
Volgens mij heb ik je jaren geleden op LibreOffice gewezen als opensource alternatief, mooi om te zien en lezen wat het je allemaal gebracht heeft!
Zelf zit ik bij een hobby programmeer groep als testgebruiker. De programmeurs hebben ook vaak hetzelfde dilemma wanneer software stopt, evalueert of herschreven moet worden zoals onlangs bij Python2 > Python3.
Het geeft inderdaad veel plezier. En ik zie mijzelf nadat ik stop met werken ook nog wel een programmeertaal leren om actief bij te kunnen dragen aan de ontwikkeling van open-source software.
LibreOffice kan ik ook aanraden, fijn in het gebruik!
Voor mij is geld geluk elke euro zo besteden dat ik er aan het eind van het jaar tevreden op terugkijk. Een belegging kan het goed doen terwijl ik geld over de balk gooi, en slecht terwijl ik tevreden ben over mijn uitgaven. Om die reden laat ik de waarde van beleggen buiten mijn geld systeem.