Dit artikel is een verlengstuk van het artikel Changing VBA editor theme. In het laatst genoemde artikel wordt uitgelegd hoe de dark theme in de Visual Basic Editor handmatig toegepast kan worden. Ten behoeve van dit artikel zijn deze handmatige handelingen geautomatiseerd door de betreffende waarden rechtstreeks naar het register te laten wegschrijven.
De betreffende waarden voor het register zijn achterhaald met behulp van snapshots van het register. Zo is een snapshot voor en na de handmatige handelingen opgenomen. Op deze manier konden de wijzigingen in het register achterhaald worden. Voor dit proces is de software Registry Changes View gebruikt.
Gezien de onderstaande code wijzigingen aanbrengt in het register dient deze met zorg te worden uitgevoerd. Zorg altijd voor een backup van het systeem!
Zorg voorts voor een corresponderende versie nummer van VBA! Controleer dit via de Visual Basic Editor | Help | About Microsoft Visual Basic for Applications...
Option Explicit '----------------------------------------------------------------------------------------------------------------------- ' Auteur : pascalterheege.nl ' Datum : 18-5-2020 ' Doel : dark theme VBE toepassen via het register ' Bronnen : dark theme: https://vineetkumar.me/2019/09/changing-vba-editor-theme/ ' registry : https://www.nirsoft.net/utils/registry_changes_view.html ' Toelichting : sleutels en waarden zijn achterhaald via RegistryChangesView v1.25 (snapshots) ' > Let op < : wees voorzichtig met het aanbrengen van wijzigingen in het register! zorg altijd voor een backup! '----------------------------------------------------------------------------------------------------------------------- ' ################################################### ' # Field Foreground Background # ' # Normal Text White Black # ' # Comment Text Dark Grey Black # ' # Keyword Text Light Green Black # ' # Identifier Text Sky Blue Black # ' # Bookmark Text Dark Green Black # ' # Call Return Text Blue Black # ' ################################################### Dim objRegister As Object Const Register As String = "HKEY_CURRENT_USER\SOFTWARE\Microsoft\VBA\7.1\Common\" Sub wijzigThema() If MsgBox("Dark theme toepassen?", vbYesNo + vbQuestion) = vbYes Then opslaanSleutel Register & "CodeBackColors", "4 0 0 7 6 4 4 4 4 4 0 0 0 0 0 0 " opslaanSleutel Register & "CodeForeColors", "1 0 5 0 1 3 9 11 10 13 0 0 0 0 0 0 " Else verwijderSleutel Register & "CodeBackColors" verwijderSleutel Register & "CodeForeColors" End If End Sub Sub opslaanSleutel(Sleutel As String, Waarde As String) Set objRegister = CreateObject("WScript.Shell") objRegister.RegWrite Sleutel, Waarde End Sub Function verwijderSleutel(Sleutel As String) As Boolean On Error GoTo ErrorHandler Set objRegister = CreateObject("WScript.Shell") objRegister.RegDelete Sleutel verwijderSleutel = True Exit Function ErrorHandler: verwijderSleutel = False End Function