Excel VBAメモ WScriptのRegRead()メソッドを使ってHKEY_LOCAL_MACHINE以下にあるレジストリの値を取得してみる

VBA

ヤボ用で必要になったので。
最初はGetSetting()ってメソッドでレジストリの値を取得しようと思ったんだけど、どうやらHKEY_CURRENT_USER\Software\VB and VBA Program Settings\以下のキーしか操作できないらしいので今回の目的にはあわない。

なんだかんだで、とっても簡単にできたかも。

ポイントとしてはこんな感じ。

  • WScript.Shellのオブジェクトを使う
  • 極力簡単に(dllを読み込んだりなど面倒な処理を追加しないでも)値を取得できる

注意するところとして…今回はレジストリの値を参照するだけだけど、値を変更したり削除するときは絶大で細心に注意すること。
でないと、アプリが起動しなくなったり…最悪再インストールすることになっちゃう。

コードとしては感じ。
とりあえず、試しにAppleのサポートアプリなインストールパスあたりを取得してみることに。

Public Function GetRegistry() As String

    ' 変数を宣言する
    Dim objShell As Object
    Dim strKey As String
    Dim strValue As String
    
    ' 変数を初期化する
    Set objShell = CreateObject("WScript.Shell")
    strKey = "HKEY_LOCAL_MACHINE\SOFTWARE\Apple Inc.\Apple Application Support\InstallDir"
    strValue = ""

    On Erorr GoTo MethodEnd
    
        ' レジストリの値を取得する
        strValue = objShell.RegRead(strKey)
        
        ' 取得した値をメッセージボックスに表示する
        MsgBox strValue
    
MethodEnd:
    
    ' オブジェクトを破棄する
    If Not objShell Is Nothing Then
        Set objShell = Nothing
    End If

End Function

参照するレジストリはエディタでみるとこんな感じ。

んで、実行したらこんな感じ。
ダイアログに値が表示されとる。

んまま、明日への自分へのメモってことで。