Microsoft ExcelでVBAを使用してレジストリを使用してプライベートプロファイル文字列
プライベートプロファイル文字列は、後で使用するためにアプリケーション/ドキュメントの外部にユーザー固有の情報を格納するためによく使用されます。
たとえば、最新のコンテンツに関する情報をダイアログ/ユーザーフォームに保存したり、ワークブックを開いた回数や、請求書テンプレートで最後に使用した請求書番号を保存したりできます。
各ユーザーのプライベートプロファイル文字列は、レジストリに保存できます。ローカルハードディスクまたは共有ネットワークフォルダのいずれかでINIファイルを使用することもできます。
レジストリ内のプライベートプロファイル文字列への書き込みおよびプライベートプロファイル文字列からの読み取り用のマクロの例を次に示します。
' the examples below assumes that the range B3:B5 in the active sheet contains ' information about Lastname, Firstname and Birthdate Sub WriteUserInfoToRegistry() ' saves information in the Registry to ' HKEY_CURRENT_USER\Software\VB and VBA Program Settings\TESTAPPLICATION On Error Resume Next SaveSetting "TESTAPPLICATION", "Personal", "Lastname", Range("B3").Value SaveSetting "TESTAPPLICATION", "Personal", "Firstname", Range("B4").Value SaveSetting "TESTAPPLICATION", "Personal", "Birthdate", Range("B5").Value On Error GoTo 0 End Sub Sub ReadUserInfoFromRegistry() ' reads information in the Registry from ' HKEY_CURRENT_USER\Software\VB and VBA Program Settings\TESTAPPLICATION Range("B3").Formula = GetSetting("TESTAPPLICATION", "Personal", "Lastname", "") Range("B4").Formula = GetSetting("TESTAPPLICATION", "Personal", "Firstname", "") Range("B5").Formula = GetSetting("TESTAPPLICATION", "Personal", "Birthdate", "") End Sub ' the example below assumes that the range D4 in the active sheet contains ' information about the unique number Sub GetNewUniqueNumberFromRegistry() Dim UniqueNumber As Long UniqueNumber = 0 On Error Resume Next UniqueNumber = CLng(GetSetting("TESTAPPLICATION", "Personal", "UniqueNumber", "")) On Error GoTo 0 Range("D4").Formula = UniqueNumber + 1 SaveSetting "TESTAPPLICATION", "Personal", "UniqueNumber", Range("D4").Value End Sub Sub DeleteUserInfoFromRegistry() ' deletes information in the Registry from ' HKEY_CURRENT_USER\Software\VB and VBA Program Settings\TESTAPPLICATION On Error Resume Next DeleteSetting "TESTAPPLICATION" ' delete all information 'DeleteSetting "TESTAPPLICATION", "Personal" ' delete one section 'DeleteSetting "TESTAPPLICATION", "Personal", "Birthdate" ' delete one key On Error GoTo 0 End Sub