Microsoft ExcelでVBAを使用してSystem.PrivateProfileString単語を使用してプライベートプロファイル文字列
API関数を使用したくない場合は、Wordsオブジェクトライブラリを使用してプライベートプロファイル文字列を読み書きできます。
Words System.PrivateProfileStringは、INIファイルとレジストリの両方からの読み取りと書き込みが可能です。
Word以外のアプリケーションでは、Wordsオブジェクトライブラリへの参照を追加する必要があります。
Visual Basic Editor(VBE)を開いて参照を追加し、VBプロジェクトをアクティブ化できます。次に、[ツール]、[参照…]を選択し、[Microsoft Wordx.xオブジェクトライブラリ]オプションをオンにします。
INIファイルに情報を書き込む
以下のマクロを使用すると、情報をテキストファイルに保存できます。
Function 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 ' create the Word application object On Error Resume Next wd.System.PrivateProfileString(FileName, Section, Key) = CStr(KeyValue) On Error GoTo 0 Set wd = Nothing ' destroy the Word application object SetIniSetting = True End Function
次のようなマクロを使用して、キーTestValueのセクションMySectionNameのファイルC:\ FolderName \ FileName.iniに値100を保存します。
MyBooleanVar = SetIniSetting( “C:\ FolderName \ FileName.ini”、 “MySectionName”、 “TestValue”、100)
テキストファイルは次のようになります:
TestValue = 100
INIファイルから情報を読み取る
以下のマクロを使用すると、テキストファイルから情報を読み取ることができます:
Function GetIniSetting(FileName As String, Section As String, _ Key As String) As String Dim wd As Word.Application GetIniSetting = "" Set wd = New Word.Application ' create the Word application object On Error Resume Next GetIniSetting = wd.System.PrivateProfileString(FileName, Section, Key) On Error GoTo 0 Set wd = Nothing ' destroy the Word application object End Function
このようなマクロを使用して、ファイルC:\ FolderName \ FileName.iniからセクションMySectionNameのキーTestValueの値を返します:
MyStringVar = GetIniSetting("C:\FolderName\FileName.ini", _ "MySectionName", "TestValue")
===
レジストリに情報を書き込む*以下のマクロを使用すると、レジストリに情報を保存できます。
Function SetRegistrySetting(Section As String, _ Key As String, KeyValue) As Boolean Dim wd As Word.Application SetRegistrySetting = False Set wd = New Word.Application ' create the Word application object On Error Resume Next wd.System.PrivateProfileString("", Section, Key) = CStr(KeyValue) On Error GoTo 0 Set wd = Nothing ' destroy the Word application object SetRegistrySetting = True End Function
次のようなマクロを使用して、キーDefaultPathの新しい値をHKEY_CURRENT_USER \ Software \ Microsoft \ Office8.0 \ Excel \ MicrosoftExcelに保存します。
MyStringVar = "HKEY_CURRENT_USER\Software\Microsoft\Office.0\Excel\Microsoft Excel" MyBooleanVar = SetRegistrySetting(MyStringVar, _ "DefaultPath", "C:\FolderName")
レジストリから情報を読み取る以下のマクロを使用すると、レジストリから情報を読み取ることができます。
Function GetRegistrySetting(Section As String, Key As String) As String Dim wd As Word.Application GetRegistrySetting = "" Set wd = New Word.Application ' create the Word application object On Error Resume Next GetRegistrySetting = wd.System.PrivateProfileString("", Section, Key) On Error GoTo 0 Set wd = Nothing ' destroy the Word application object End Function
このようなマクロを使用して、キーDefaultPathから値を読み取ります
HKEY_CURRENT_USER \ Software \ Microsoft \ Office8.0 \ Excel \ Microsoft Excelから:
MyStringVar = "HKEY_CURRENT_USER\Software\Microsoft\Office.0\Excel\Microsoft Excel" MyStringVar = SetRegistrySetting(MyStringVar, _ "DefaultPath")