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