Pagina's in dit artikel
-
Voorbereiding
-
Map of add-in
-
Menu's
-
Toolbars
-
Beperk toegang
-
Code beveiligen
-
Initialiseren
-
Instellingen
-
Talen
-
Installatie
-
Conclusie
Instellingen bewaren
Veel applicaties geven de gebruiker de mogelijkheid instellingen te
veranderen. Het is handig deze op te slaan, zodat de gebruiker dit niet
telkens hoeft te herhalen. Er zijn uiteenlopende mogelijkheden om dit te
doen. De eerste is door gebruik van een tekstbestandje. Voor de locatie
van dit bestand zijn er verschillende mogelijkheden. De Windows map, een
map onder "Documents & Settings", maar het gemakkelijkste is het om de
map te gebruiken waar het bestand met de macro ook staat.
De voorbeeldcode in listing 5 slaat de "instellingen" op in het
bestand xlutil01.ini in dezelfde map als het bestand zelf:
Listing 5
Option Explicit
Dim sInipath As
String
Public gsTaal As
String
Public gsBoodschap As
String
Sub ReadIni()
sInipath = ThisWorkbook.Path & "\"
On Error
Resume Next
Open sInipath & "xlutil01.ini"
For Input As
#1
If Err = 53 Then
CreateIni
Exit Sub
End If
Input #1, gsTaal, gsBoodschap
Close #1
bVarsOK = True
On Error
GoTo 0
End Sub
Sub CreateIni()
gsTaal = "Nederlands"
gsBoodschap = "De standaard boodschap."
WriteIni
End Sub
Sub WriteIni()
Open sInipath & "xlutil01.ini"
For Output As
#1
Write #1, gsTaal, gsBoodschap
Close #1
End Sub
Sub ChangeSettings()
If Not
bVarsOK Then ReadIni
gsTaal = InputBox("Geef de taal", "xlUtil01", gsTaal)
gsBoodschap = InputBox("Geef boodschap.", "xlUtil01",
gsBoodschap)
If gsTaal = "" Or
gsBoodschap = "" Then
ReadIni
MsgBox "Wijziging geannuleerd!", vbOKOnly + vbInformation
Exit Sub
Else
WriteIni
End If
End Sub
Een andere methode voor het opslaan van instellingen is via het
register. Hiervoor kan gebruik gemaakt worden van de twee functies
GetSetting en SaveSetting. De instellingen worden in het register
geplaatst op de volgende plaats: "My
Computer\HKEY_CURRENT_USER\Software\VB and VBA Program Settings\".
De code in listing 6 laat zien hoe één en ander werkt:
Listing 6
Option
Explicit
Dim gsShortCutKey
As String
Sub
GetSettings()
gsShortCutKey = GetSetting("xlUtilDemo", "Settings",
"ShortCutKey", "n")
End
Sub
Sub SaveSettings()
GetSettings
gsShortCutKey = InputBox("Geef nieuwe sneltoets", ,
gsShortCutKey)
If gsShortCutKey = ""
Then Exit Sub
gsShortCutKey = Left(gsShortCutKey, 1)
SaveSetting
"xlUtilDemo", "Settings", "ShortCutKey", gsShortCutKey
End Sub
Sub
Deletesettings()
DeleteSetting "xlUtilDemo"
End Sub
Afbeelding 9 toont het resultaat van het opslaan van deze waarde in
de register editor.
Afbeelding 9: screenshot van de register editor
Run de sub "Deletesettings" om de registerwijziging ongedaan te
maken.