VBAでExcelの参照設定を行う方法

このQ&Aのポイント
  • VBAでExcelの参照設定を行いたい場合、[Microsoft Visual Basic Application Extensibility]を設定する必要があります。参照設定のパスの調べ方やGUIDの意味についてもわからないという場合は、ネットからコピーした設定を使用している可能性があります。アクセス2010での操作方法についても詳しく知りたい場合は、それに関する情報を調べることをおすすめします。
  • VBAを使用してExcelの参照設定を行いたい場合、[Microsoft Visual Basic Application Extensibility]をチェックする必要があります。参照設定のパスの調べ方やGUIDの意味についても不明瞭な場合は、ネットからコピーした参照設定を使用している可能性があります。アクセス2010での操作方法についても詳しく知りたい場合は、関連情報を検索してみてください。
  • VBAを使用してExcelの参照設定を行う場合、[Microsoft Visual Basic Application Extensibility]の設定が必要です。参照設定のパスの調べ方やGUIDの意味についても理解していない場合は、ネットからコピーした設定情報が使用されている可能性があります。アクセス2010での具体的な手順については、関連情報を検索してみることをおすすめします。
回答を見る
  • ベストアンサー

参照設定 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です。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

Sub test()  Dim Ref As Reference  'VBIDE  Set Ref = References.AddFromGuid("{0002E157-0000-0000-C000-000000000046}", 5, 3)  Set Ref = Nothing End Sub 参考: https://msdn.microsoft.com/ja-jp/library/office/ff821135.aspx

QWNLCXLUSF
質問者

お礼

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

関連するQ&A

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

  • 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するコードです。 よろしくお願いします。

  • 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で参照設定する方法

    sub フォルダをコピーする() Dim myFSO As New FileSystemObject myFSO.CopyFolder "D:\TEST", "D:\TEST2" End Sub を実行したいのですが、 Visual Basic Editor の [ツール]-[参照設定] で、 "Microsoft Scripting Runtime" にチェックせずに、 vbaで参照設定する方法を教えてください。 バージョンは2007です。 ご回答よろしくお願いします。

  • VBAで、VBProjectへのアクセスのための設定について教えてください。

    Excelで、下記のようなマクロを作成し動かしたころ、 「実行時エラー'6068'  Visual Basic Projectへのプログラム的なアクセスは信頼されません」 というエラーが出てしまいます。 どのように対処すれば動作するようになるのでしょうか。ご教示ください。よろしくお願いいたします。 【環境】 Windows XP & Office2003 【設定など】 Excel:[ツール]-[マクロ]-[セキュリティ]で、  「Visual Basic プロジェクトへのアクセスを信頼する」にチェック VBエディタ:[ツール]-[参照設定]で、以下の参照を追加  Microsoft Visual Basic for Applications Extensibility 5.3  Microsoft Word 11.0 Object Library 【作ろうとしているマクロ】 (1)マクロを含んだWordファイルを開く (2)Wordファイルのプロパティや、マクロのプログラムの行数などの値を取得 (3)Excelのシートに取得した値を入力 【作ったマクロ】 Sub test() Dim objWord As Object Set objWord = CreateObject("Word.Application") flname = "(フルパスでのファイル名)" With objWord .Visible = False .Documents.Open Filename:=flname, _ ReadOnly:=True, _ OpenAndRepair:=False With objWord.Documents aaa = .Item(1).BuiltinDocumentProperties(1).Value Worksheets("test").Cells(1, 1).Value = aaa 'ここまでは正常に動作します。 bbb = .Item(1).VBProject.VBComponents(1).CodeModule.CountOfLines 'ここで実行時エラーが出ます。 Worksheets("test").Cells(1, 1).Value = bbb .Item(1).Close SaveChanges:=wdDoNotSaveChanges End With End With objWord.Quit Set objWord = Nothing End Sub 以上です。 どうか、よろしくお願いいたします。

  • 参照設定にチェックを入れないでADOを使いたい

    アクセス2003です。 テーブル1にテキスト型のフィールド1を作り、数レコードをサンプルで入れました。 そしてVBE画面で Sub test() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source= " & CurrentProject.FullName rs.Open "テーブル1", cn, adOpenKeyset, adLockOptimistic MsgBox rs.RecordCount rs.Close: Set rs = Nothing cn.Close: Set cn = Nothing End Sub としたらレコード件数が取得できました。 質問は ツール→参照設定の Microsoft ActiveX Data Objects 2.8 Library にチェックをいれなくても VBAコードだけで参照設定できたような気がするので そのコードを教えてくいただけませんか? アドバイスよろしくお願いします。

  • VBAで既存のパワポのファイルを開くには?

    アクセスやエクセルからVBAで既存のパワポのファイルを開くには? 参照設定をして、 Sub test() Dim App As PowerPoint.Application Dim MyFileName As String Set App = CreateObject("PowerPoint.Application") MyFileName = CurrentProject.Path & "サンプル.ppt" App.Visible = True Set App = Nothing End Sub を実行すると、パワポの空のアプリケーション開きますが肝心のファイルが開きません。 開く方法を教えてください。

  • ACCESSのVBAについて

    ACCESSのVBAを使って、データの集計・分析などをしてEXCELに出力、さらにそのEXCELを少しいじる、←このVBAをVBSで実行 といった事をしていたのですが、 会社の端末が一部Office2003から2010に変わったため、参照設定に不具合が出てきました。 内容は、元々2003で作成されたデータベースを2010で開くとVBAの参照設定が「Microsoft Access 11.0 Object Library」だったものは「Microsoft Access 14.0 Object Library」に変わるのですが、 「Microsoft Excel 11.0 Object Library」は変更されずに参照不可になってしまいます。 以前、別のところで同様の質問をした際に、 →「参照設定」をして、コードを作成したあと、コードに使われている定数を全部調べ上げて、変数宣言のコードを作成し、 参照設定のチェックを外して、宣言のコードを追加する、ということで、参照設定の対策をします。 といった回答を頂いたのですが、いまいち理解できていません。 以下のコードをEXCELの参照設定を外しても動くようにするにはどのようにしたら良いのでしょうか?よろしくお願いします。 Sub TEST() Dim xls As Excel.Application Dim wb As Excel.Workbook DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "TEST", "C:\TEST.xls", True Set xls = CreateObject("Excel.Application") Set wb = xls.Workbooks.Open("C:\TEST.xls") With xls .Sheets("Sheet1").Select .Range("A1").Value = "成功" .Visible = True End With End Sub

専門家に質問してみよう