[OCN光]Twitterキャンペーン開催中!

オフィス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も、どの値を設定してあげればいいのかわかりません。
ご教授よろしくお願いします。

教えて!goo グレード

A 回答 (1件)

そこまで近づいておきながら・・・。


一番下に、
タイプライブラリのGUIDやバージョンを取得する
http://www.moug.net/tech/acvba/0020002.html
がありますよ。

参照設定を自動的に行う (AddFromFileメソッド)
http://www.moug.net/tech/acvba/0010005.html
も一緒に調べてみたほうが吉。

なお、両方ともAccessを対象としているので
Excelの場合は、
http://oshiete.goo.ne.jp/qa/7648287.html
のようになるのかな?と思います。
    • good
    • 0
この回答へのお礼

ヒント有難うございます。

もしエクセルの参照設定がされてないならする・・・ができました!

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

ありがとうございました。

お礼日時:2013/06/15 08:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング