Strings de perfis privados usando palavras System.PrivateProfileString usando VBA no Microsoft Excel

Anonim

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")