Se non si desidera utilizzare le funzioni API, è possibile utilizzare la libreria di oggetti di Words per leggere e scrivere stringhe di profili privati.
Words System.PrivateProfileString può leggere e scrivere sia nei file INI che nel Registro di sistema.
In altre applicazioni oltre a Word è necessario aggiungere un riferimento alla libreria di oggetti di Words.
Puoi aggiungere il riferimento aprendo Visual Basic Editor (VBE) e attivando il tuo progetto VB. Quindi si seleziona Strumenti, Riferimenti… e si seleziona l'opzione Libreria oggetti Microsoft Word x.x.
Scrivi informazioni su file INI
Con la macro qui sotto puoi salvare le informazioni in un file di testo:
Funzione SetIniSetting(FileName As String, Section As String, _ Key As String, KeyValue) As Boolean Dim wd As Word.Application SetIniSetting = False Imposta wd = New Word.Application ' crea l'oggetto applicazione Word In caso di errore Riprendi successivo wd.System. PrivateProfileString(FileName, Section, Key) = CStr(KeyValue) On Error GoTo 0 Set wd = Nothing ' distrugge l'oggetto dell'applicazione Word SetIniSetting = True End Function
Usa la macro come questa per salvare il valore 100 nel file C:\FolderName\FileName.ini nella sezione
MySectionName per la chiave TestValue:
MyBooleanVar = SetIniSetting("C:\FolderName\FileName.ini", "MySectionName", "TestValue", 100)
Il file di testo sarà simile a questo:
[MioNomeSezione]
ValoreTest=100
Leggi le informazioni dai file INI
Con la macro qui sotto puoi leggere le informazioni da un file di testo:
Funzione GetIniSetting(FileName As String, Section As String, _ Key As String) As String Dim wd As Word.Application GetIniSetting = "" Imposta wd = New Word.Application ' crea l'oggetto applicazione Word In caso di errore Riprendi successivo GetIniSetting = wd.System .PrivateProfileString(FileName, Section, Key) On Error GoTo 0 Set wd = Nothing ' distrugge l'oggetto dell'applicazione Word End Function
Usa la macro come questa per restituire il valore per la chiave TestValue nella sezione MySectionName
dal file C:\NomeCartella\NomeFile.ini:
MyStringVar = GetIniSetting("C:\FolderName\FileName.ini", _ "MySectionName", "TestValue")
Scrivi informazioni al Registro
Con la macro qui sotto puoi salvare le informazioni nel Registro:
Function SetRegistrySetting(Section As String, _ Key As String, KeyValue) As Boolean Dim wd As Word.Application SetRegistrySetting = False Imposta wd = New Word.Application ' crea l'oggetto applicazione Word In caso di errore Riprendi Avanti wd.System.PrivateProfileString("" , Section, Key) = CStr(KeyValue) On Error GoTo 0 Set wd = Nothing ' distrugge l'oggetto dell'applicazione Word SetRegistrySetting = True End Function
Usa la macro come questa per salvare un nuovo valore in HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Excel\Microsoft
Excel per la chiave DefaultPath:
MyStringVar = "HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Excel\Microsoft Excel" MyBooleanVar = SetRegistrySetting(MyStringVar, _ "DefaultPath", "C:\FolderName")
Leggi le informazioni dal Registro Con la macro sottostante puoi leggere le informazioni dal Registro:
Funzione GetRegistrySetting (Sezione come stringa, chiave come stringa) As String Dim wd As Word.Application GetRegistrySetting = "" Imposta wd = New Word.Application ' crea l'oggetto applicazione Word In caso di errore Riprendi successivo GetRegistrySetting = wd.System.PrivateProfileString("" , Section, Key) On Error GoTo 0 Set wd = Nothing 'distrugge l'oggetto dell'applicazione Word End Function
Usa la macro come questa per leggere il valore dalla chiave DefaultPath
da HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Excel\Microsoft Excel:
MyStringVar = "HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Excel\Microsoft Excel" MyStringVar = SetRegistrySetting(MyStringVar, _ "DefaultPath")