Se você não quiser usar funções de API, pode usar a biblioteca de objetos Words para ler e escrever strings de perfil privado.
As palavras System.PrivateProfileString podem ler e gravar em arquivos INI e no Registro.
Em outros aplicativos além do Word, você deve adicionar uma referência à biblioteca de objetos Palavras.
Você pode adicionar a referência abrindo o Editor do Visual Basic (VBE) e ativar seu Projeto VB. Em seguida, selecione Ferramentas, Referências… e marque a opção Biblioteca de objetos do Microsoft Word x.x.
Grave informações em arquivos INI
Com a macro abaixo, você pode salvar informações em um arquivo de texto:
Função SetIniSetting (FileName As String, Section As String, _ Key As String, KeyValue) As Boolean Dim wd As Word.Application SetIniSetting = False Set wd = New Word.Application 'cria o objeto de aplicação Word On Error Resume Next wd.System. PrivateProfileString (FileName, Section, Key) = CStr (KeyValue) On Error GoTo 0 Set wd = Nothing 'destruir o objeto de aplicativo do Word SetIniSetting = True End Function
Use a macro como esta para salvar o valor 100 no arquivo C: \ FolderName \ FileName.ini na seção
MySectionName para a chave TestValue:
MyBooleanVar = SetIniSetting ("C: \ FolderName \ FileName.ini", "MySectionName", "TestValue", 100)
O arquivo de texto terá a seguinte aparência:
[MySectionName]
TestValue = 100
Leia as informações dos arquivos INI
Com a macro abaixo, você pode ler as informações de um arquivo de texto:
Função GetIniSetting (FileName As String, Section As String, _ Key As String) As String Dim wd As Word.Application GetIniSetting = "" Set wd = New Word.Application 'cria o objeto de aplicação Word On Error Resume Next GetIniSetting = wd.System .PrivateProfileString (FileName, Section, Key) Em caso de erro GoTo 0 Set wd = Nothing 'destrói o objeto de aplicativo do Word End Function
Use a macro como esta para retornar o valor para a chave TestValue na seção MySectionName
do arquivo C: \ FolderName \ FileName.ini:
MyStringVar = GetIniSetting ("C: \ FolderName \ FileName.ini", _ "MySectionName", "TestValue")
Grave informações no Registro
Com a macro abaixo você pode salvar informações no Registro:
Função SetRegistrySetting (Section As String, _ Key As String, KeyValue) As Boolean Dim wd As Word.Application SetRegistrySetting = False Set wd = New Word.Application 'criar o objeto de aplicativo Word On Error Resume Next wd.System.PrivateProfileString ("" , Section, Key) = CStr (KeyValue) On Error GoTo 0 Set wd = Nothing 'destruir o objeto de aplicativo do Word SetRegistrySetting = True End Function
Use a macro como esta para salvar um novo valor em HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 8.0 \ Excel \ Microsoft
Excel para a chave DefaultPath:
MyStringVar = "HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 8.0 \ Excel \ Microsoft Excel" MyBooleanVar = SetRegistrySetting (MyStringVar, _ "DefaultPath", "C: \ FolderName")
Ler as informações do Registro Com a macro abaixo, você pode ler as informações do Registro:
Função GetRegistrySetting (Section As String, Key As String) As String Dim wd As Word.Application GetRegistrySetting = "" Set wd = New Word.Application 'cria o objeto de aplicação Word On Error Resume Next GetRegistrySetting = wd.System.PrivateProfileString ("" , Seção, Chave) Em caso de erro GoTo 0 Set wd = Nothing 'destrói o objeto de aplicativo do Word End Function
Use a macro como esta para ler o valor da chave DefaultPath
de 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")