プロが教える店舗&オフィスのセキュリティ対策術

Dim Ref As Reference

'Excel
Set Ref = References.AddFromGuid("{00020813-0000-0000-C000-000000000046}", 1, 7)

'ADODB
Set Ref = References.AddFromGuid("{2A75196C-D9EB-4129-B803-931327F72D5C}", 2, 8)

このような感じで、vbaで参照設定をしているのですが、
Microsoft Forms 2.0 Object Library
へ、vbaで参照設定をしたい場合、どうなりますか?

今は、
http://www.moug.net/tech/acvba/0020034.html
のやり方で手作業で参照設定していますが、
vbaでのやり方が知りたいです。

{00020813-0000-0000-C000-000000000046}", 1, 7

こういうコードの調べ方がわかりません。

「vbaで参照設定」の質問画像

A 回答 (2件)

#1、cjです。


ExcelじゃなくてAccessのようですね?失礼しました。

調べ方。実際に必要な参照設定をしてから、続けて以下を実行します。

///

Sub Re8686544_GetArgs() ' access
  Dim Ref As Reference
' ' 一旦、必要な参照設定を済ませてから、実行
  Set Ref = References(References.Count)
  With Ref
    Debug.? "Name = "; .Name
    Debug.? "Guid:="""; .Guid; """, ";
    Debug.? "Major:=" & .Major; ", ";
    Debug.? "Minor:=" & .Minor
  End With
End Sub

///

MeForms2.0を参照設定する方法。(改)二重に設定しないように。

///

Sub Re8686544_AddRef_() ' access
  Dim Ref As Reference
  For Each Ref In References
    If Ref.Name = "MSForms" Then
      If Ref.Major = 2 And Ref.Minor = 0 Then
        MsgBox "既に参照済でした"
        Exit Sub
      End If
    End If
  Next
  Set Ref = References.AddFromGuid("{0D452EE1-E08F-101A-852E-02608C4D0BB4}", 2, 0)
End Sub

///
    • good
    • 0

こんにちは。



とりあえず、何も参照設定していなくても動くように書いておきます。
調べ方、ですが、実際に参照設定してみて、★印以降を実行するのが
簡単で早いかな?と。

Sub Re8686544_GetGuid()
  Dim Ref As Object ' Reference
  Worksheets(1).OLEObjects.Add("Forms.Label.1").Delete
  With ThisWorkbook.VBProject.References ' ★
    Set Ref = .Item(.Count)
  End With
  With Ref
    Debug.Print "Name = "; .Name
    Debug.Print "Guid:="; .GUID; ", ";
    Debug.Print "Major:="; .Major; ", ";
    Debug.Print "Minor:="; .Minor
  End With
End Sub

Sub Re8686544_AddRef()
  Dim Ref As Object 'Reference
  Set Ref = ThisWorkbook.VBProject.References.AddFromGuid("{0D452EE1-E08F-101A-852E-02608C4D0BB4}", 2, 0)
End Sub
    • good
    • 0

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