- ベストアンサー
VBAで参照設定を行いたい GUIDを知るには?
オフィス2010なのですが、 VBAで参照設定を行いたいのですが GUIDというのはどうやって調べればいいのでしょうか? 例えばエクセルに参照設定したいのですが レジストリエディタを立ち上げて、 HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Excel のどの部分を見れば、GUIDがわかりますか? http://www.moug.net/tech/acvba/0010004.html を参考にvbaコードを作っていますが、 Public Function SetGUID() On Error GoTo Err_Check: Dim Ref As Reference 'Microsoft Excel 9.0 Objects Library (Excel2000) Const strExcel As String = "{00020813-0000-0000-C000-000000000046}" '参照設定 Set Ref = References.AddFromGuid(strExcel, 1, 3) Func_Exit: Set Ref = Nothing Exit Function Err_Check: If Err.Number = 32813 Then Resume Next Else MsgBox "Error Number : " & Err.Number & vbCrLf & Err.Description GoTo Func_Exit: End If End Function やはりこれだと、参照設定できません。 もちろんオフィスのバージョンが違うからだと思いますが。 あと、AddFromGuidメソッドの引数Major、Minorも、どの値を設定してあげればいいのかわかりません。 ご教授よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
そこまで近づいておきながら・・・。 一番下に、 タイプライブラリのGUIDやバージョンを取得する http://www.moug.net/tech/acvba/0020002.html がありますよ。 参照設定を自動的に行う (AddFromFileメソッド) http://www.moug.net/tech/acvba/0010005.html も一緒に調べてみたほうが吉。 なお、両方ともAccessを対象としているので Excelの場合は、 http://okwave.jp/qa/q7648287.html のようになるのかな?と思います。
お礼
ヒント有難うございます。 もしエクセルの参照設定がされてないならする・・・ができました! Sub SetGUID() Dim Ref As Reference Dim strExcel As String Dim flg As Boolean strExcel = "{00020813-0000-0000-C000-000000000046}" For Each Ref In References If Ref.Guid = strExcel Then flg = True Exit For End If Next If flg = False Then Set Ref = References.AddFromGuid(strExcel, 1, 7) End If Set Ref = Nothing End Sub ありがとうございました。