• 締切済み

vbaで参照設定

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 こういうコードの調べ方がわかりません。

みんなの回答

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.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 ///

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

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

関連するQ&A

  • 参照設定 VBAで行ないたいのですが

    参照設定で[Microsoft Visual Basic Application Extensibility]をチェックを VBAで行ないたいのですが Sub test() Dim Ref As Reference 'Excel Set Ref = References.AddFromGuid("{00020813-0000-0000-C000-000000000046}", 1, 7) Set Ref = Nothing End Sub のようになるとしたら、どうすればいいのでしょうか? エクセルの参照設定の仕方はネットからコピーしたもので、 やりたい参照設定のパスの調べ方がわかりません。 ("{00020813-0000-0000-C000-000000000046}", 1, 7) が何を意味するのか、何の情報かわからない為 [Microsoft Visual Basic Application Extensibility]についてもわかりません。 アクセス2010です。

  • ExcelのVBAによる参照設定について

    VBAによる参照設定について教えてください。 以前にOffice2010と2003の互換性の問題について教えていただいた際に、以下のようなやり方を教えていただき、AccessのVBAでExcelの参照設定はできたのですが、ExcelのVBAでAccessの参照設定をしようとした際に「Dim Ref As Reference」の部分が「ユーザー定義型は定義されていません」となってしまいコンパイルできません。Accessの参照設定にチェックを入れると問題ないので、Excelに「Reference」というデータ型が使えないのだと思うのですが、Excelではどのように書いたらよいのでしょうか? On Error GoTo Err_Rise Dim Ref As Reference Const strGUID As String = "{00020813-0000-0000-C000-000000000046}" 'Excelの参照設定をする場合 Const strGUID As String = "{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}" 'Accessの参照設定をする場合 Set Ref = References.AddFromGuid(strGUID, 1, 3) Set Ref = Nothing Err_Rise: If Err.Number = 32813 Then Resume Next End If On Error GoTo 0

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

  • Referencesの参照設定

    http://www.tsware.jp/tips/tips_565.htm を参考に、 VBAで参照設定されているライブラリの一覧を取得したいのですが、 Sub t() Dim Ref As Reference For Each Ref In References With Ref Debug.Print .Name Debug.Print .FullPath Debug.Print .GUID Debug.Print .Major Debug.Print .Minor Debug.Print .IsBroken End With Next Ref End Sub を実行すると、 Ref As Reference の部分で、コンパイルエラー(ユーザー定義型は定義されていません) になります。 多分、Referencesの参照設定をしないと、このコードは使えないからだと思うのですが、 参照設定にどこにチェックをすればいいでしょうか?

  • アクセスVBAの参照設定

    アクセスVBAからエクセルを使うためにVBAのツールメニュでExcel11.0 Object Libraryを参照設定すると、なぜか「参照不可」になってしまいます。 別のパソコンでは問題ありません。 原因は何でしょうか?どうすれば解決できるのでしょうか? よろしくお願いします。

  • Access 開くときに自動で参照設定

    いつもお世話になっております。 Accessで参照設定を自動でする下記コードで、 "C:\Program Files (x86)\Microsoft Office\Office" & sansyou & "\MSOUTL.OLB" がない場合は "C:\Program Files\Microsoft Office 15\root\office15" & sansyou & "\msoutl.olb" をセット という風な条件を付けたいのですが、添削をお願いできますでしょうか。 Dim A As Object Set A = CreateObject("Outlook.Application") Dim sansyou As String sansyou = Left(A.Version, 2) Dim Ref As Reference Set Ref = References.AddFromFile("C:\Program Files (x86)\Microsoft Office\Office" & sansyou & "\MSOUTL.OLB") Set Ref = Nothing ちなみに、閉じるときに Application.References.Remove References("Outlook") で、参照設定のチェックを外しています。 バージョンがそれぞれ異なるPCでOutlookの参照設定チェックをONOFFするコードです。 よろしくお願いします。

  • ExcelVBAで参照設定を自動に行う

    AccessのVBAではReferencesコレクション中のReferenceオブジェクトを使用して、行うことが出来ると、ネット上で読みました。 Excel2003で同じ事を行おうと、コーディングをしたところ、変数の宣言で「... As 」まで記述したところに表示されるメニュー(?)に、「Reference」が表示されませんでした。 「ExcelVBAで参照設定を自動に行う」方法、もしくは私の環境のExcel2003で「Reference」が表示されない考えられる原因を教授下さい。 よろしくお願いします。

  • Outlook に参照設定できない

    アクセスからアウトルックに参照設定したいのですが とあるファイルで Microsoft Outlook 14.0 Object Library へ参照設定しようとすると 「この名前は既にあるモジュール、プロジェクト、オブジェクト ライブラリで使われています」 と言うエラーになります。 ファイル1.accdbでは参照設定できるのに、 ファイル2.accdbでは参照設定できるのに、 だと上記のエラーが発生します。 vbaコードに問題があるのかと思い、 全てのコードをコメントアウトしましたが同じエラーが発生します。 現在すでに参照設定しているのは、 VBA Access stdole DAO だけです。

  • 参照設定を自動で行う

    インターネットで調べたところ、アクセスでは[References]コレクション?で「参照設定」を自動で行えるようですが、エクセルのVBAでも同様のことが出来るのでしょうか? 良い方法がありましたらご教授ください。

  • EXCEL2000 VBAでのWORD参照設定

    EXCEL2007では、VBEのメニューから"MICROSOFT WORD *.* OBJECT LIBRARY"の参照設定が出来ますが、EXCEL2000ではWORD参照設定が見当たりません。 EXCEL2000 VBAでのWORD参照設定方法を教えて下さい。 会社では、まだEXCEL2000を使用しているので、よろしくお願いします。

専門家に質問してみよう