• ベストアンサー

Microsoft Excel VBAの参照設定

参照設定のデフォルト環境で Microsoft Scripting Runtime をオンにしておきたいのですがどうすればいいのでしょうか? 新しくExcelを起動し、その都度、 Microsoft Scripting Runtime をオンにするのは非常に手間なので、わかる方いましたら教えてください。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。 きちんと自分の手で参照設定するのがベストだと思います。そうでなければ、 参照が不必要なケースでも自動で参照設定されてしまうことになりますよ。 参照設定しなくとも CreateObject を使うという選択肢もありますし。 できない、、と言いたいところですが、下記のような方法で実現できそうです。 ただし、VBAProject へアクセスしますので、マクロのセキュリティーで   「VBAProjectプロジェクトへのアクセスを信頼する」 にチェックが入っていなければなりません。くどいようですが、推奨はしません。 以下手順。 1. 新規ワークブックを開く 2. ThisWorkbook モジュールに下記ソースを貼り付け 3. 適当な名前を付けてアドインとして保存する(*.xla) 4. 上記のアドインをアドインフォルダに移動   Sub アドインフォルダのパス表示     Range("A1").Value = Application.UserLibraryPath   End Sub      このプロシージャで表示されるフォルダです。WindowsXP なら、   C:\Documents and Settings\ユーザー名\Application Data\Microsoft\AddIns\   ですね、、多分。 5. Excel で[ツール]-[アドイン]-[参照] コマンドを実行し、アドインを   インストールします。 ' // 以下ソース: ThisWorkbook Module Private WithEvents xlApp As Application Private Sub Workbook_Open()   Set xlApp = Application End Sub Private Sub Workbook_BeforeClose(Cancel As Boolean)   Set xlApp = Nothing End Sub Private Sub xlApp_NewWorkbook(ByVal Wb As Workbook)      ' Microsoft Scripting Runtime   Const CLSID As String = "{420B2830-E718-11CF-893D-00A0C9054228}"      Wb.VBProject.References.AddFromGuid CLSID, 1, 0   Wb.Saved = True End Sub

koiso_pika
質問者

お礼

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

関連するQ&A

  • vbaで参照設定する方法

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

  • コードで参照設定をする方法

    VBのコード内で、オブジェクトへの「参照設定」をさせる方法を教えていただけませんでしょうか。 目的は、自分のコンピュータでは参照設定してあるオブジェクトでも、ほかのパソコンではされていると限らないため、アプリ(実際はエクセルブック)の起動時に参照設定を強制したい。参照設定がないと、そのオブジェクト変数の宣言文がコンパイルエラーとなってしまいますよね・・・。 VBAのヘルプによればこちらのメソッド(object.AddFromGuid(guid, major, minor) As Reference)を使うといいような気がするのですが、参照設定したい先(具体的には「Microsoft Scripting Runtime(scrrun.dll)」)の「GUID」がわかりません。レジストリを探さないといけないのでしょうか・・・。探し方がわかりません。

  • EXCEL2000 VBAでのWORD参照設定

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

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

  • 参照設定 VBAとvb.net

    VBAの場合、他のアプリケーションを参照する場合は、 参照設定でMicrosoft Excel xxx Object Library にチェックを付ければ良いだけだけど、 vb.netの場合は、 参照設定で、Microsoft Excel xxx ObjectLibrary にチェックを付けた上で、更に Imports Microsoft.Office.Interop の宣言をしないといけないのですか? (例はエクセルです) Imports Microsoft.Office.Interop をし忘れると、 [型 'Excel.Workbook' が定義されていません。] と言うエラーが発生します。

  • VBAの参照設定について

    osは、Wxpで、エクセル2003使用してます。 あるコードを実行したところ、コンパイルエラーメッセージが出て、 調べたところ、参照設定の中の、Microsoft Windows Common Controls 5.0(SP2)が、参照不可となっていました。たぶんこれじゃないかなと、 調べたりしたのですが、参照可能にする方法がわかりません。 可能になってるマシンでは、動作は正常で、不可になってるマシンでは、 正常に動きました。 参照可能にする方法を、どうか教えてください。 よろしくお願いします。

  • Excel2007なら何もしなくても自動参照設定?

    Excel VBAでアプリを開発中です。 リリースに際して参照設定の問題(利用者が参照設定を正しくしてくれないと動かない問題)が心配になり、確認したところ、Excel2007であれば必要な参照は勝手にやってくれることが分かりました。 (Excel2007を起動した直後と、アプリを起動した直後の参照設定状況の比較画像を添付しました。) 参照設定を自動化するようなプロシージャは入れていないにも関わらず、アプリを起動しただけで、必要とされる3つのファイルが追加参照されていることが分かります。パーフェクトです。 嬉しい誤算ですが、このようなことはどこにも書いてありません。 Excel2007から備わった機能なのでしょうか? 仕組みを理解していないと、ある日突然参照設定されなくなるおそれもあり、理解しておきたいのです。 宜しくお願いします。

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

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

  • AccessVBAの参照設定について

    Office2003(Access2003VBA)で、『MicroSoft 10.0 object Libbrary』にチェックを入れて、エクセルの、『ファイルを開くダイアログボックス』を使用しました。しかし、参照設定したファイルを、他人のPC(officeXP)で起動すると、『参照不可』のため、『ファイルを開くダイアログ』が使用できません。もちろん、参照設定を、やりなおせばいいわけですが、こんなもの納品できません。参照設定の正しい設定の仕方とかあるんでしょうか?ちなみに、同じファイルを、今度はOffice2007のPCで起動すると、ちゃんと、『MicroSoft 11.0 object Libbrary』にチェックが付いていました。どんなPCでも、Office(XP以降)がインストールされていれば、チェックされていて欲しいのですが、無理なんでしょうか?

専門家に質問してみよう