
VBのコード内で、オブジェクトへの「参照設定」をさせる方法を教えていただけませんでしょうか。
目的は、自分のコンピュータでは参照設定してあるオブジェクトでも、ほかのパソコンではされていると限らないため、アプリ(実際はエクセルブック)の起動時に参照設定を強制したい。参照設定がないと、そのオブジェクト変数の宣言文がコンパイルエラーとなってしまいますよね・・・。
VBAのヘルプによればこちらのメソッド(object.AddFromGuid(guid, major, minor) As Reference)を使うといいような気がするのですが、参照設定したい先(具体的には「Microsoft Scripting Runtime(scrrun.dll)」)の「GUID」がわかりません。レジストリを探さないといけないのでしょうか・・・。探し方がわかりません。
No.2ベストアンサー
- 回答日時:
こんにちは。
>アプリ(実際はエクセルブック)の起動時に参照設定を強制したい。
VBAですね。Microsoft Scripting Runtime(scrrun.dll)で、何をしようとされているのか分りませんが、一過性(パスを取ったり、ファイルを探す程度)で使うなら、CreateObjectで十分な気がします。Versionの違いもありません。
ただ、全て、CreateObjectでまかなえるとは言えませんが。
Access では、コードで「参照設定」を標準的にするらしいですね。ところが、他のExcelで、以下のようなコードを書いている人も見たことがないのです。
Excelで、今、試してみましたが、これで通りましたね。ただし、全ての環境で通るとは言えません。
OSによって、ReferencePath を変えればよいわけですね。
ReferencePath がシステムのあるところ
myDll は dll の名前
ThisWorkbook.VBProject.References.AddFromFile ReferencePath & myDll
AddFromFileというのがあったのですね!なるほど、helpの探し方がまた浅かったです。目から鱗です。勉強になりました。
また、#1さんからもご指摘のとおり「事前バインディング」にこだわらず、CreateObjectで確かに十分かもしれませんので、もう少し良く考えて見ます。ありがとうございました。
No.1
- 回答日時:
参照設定せずに事前バインディングですか?
無理かと。
# どうやってコンパイルするの?
そうゆう場合は、遅延バインディングします。
詳しくは、CreateObjectのヘルプ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
テキストボックス中の文字列の...
-
Excelでフィルタをかけると警告...
-
エクセルのVBAの標準モジュール...
-
VBAで既に開いている別アプリケ...
-
エクセルVBAで2つの画像を比較...
-
[VBA]CDOメッセージ送信エラー
-
上下の位置揃えについて
-
エクセルマクロエラー「'Cells'...
-
「オブジェクト変数または With...
-
Shell.ApplicationのNameSpace...
-
AccessVBAで「dim dbs as datab...
-
コンパイルすると「メソッドま...
-
VBScriptでファイルの日時順(降...
-
エクセルVBAで配列内に空白デー...
-
Excel VBAでIEにアクセスするプ...
-
VBA:オートシェイプの線の長...
-
オブジェクト変数またはWITHブ...
-
CreateObjectとGetObjectの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
テキストボックス中の文字列の...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
実行時エラー 3265「要求された...
-
上下の位置揃えについて
-
ExcelVBAでのNZ関数について
-
VBAで既に開いている別アプリケ...
-
VBAで Set wb = Sheets(1).Cop...
-
AccessVBAで「dim dbs as datab...
-
EXCEL VBA オートシェイプナン...
-
オブジェクト変数またはWITHブ...
-
[VBA]CDOメッセージ送信エラー
-
エクセルマクロエラー「'Cells'...
-
findメソッドの変数について
-
オブジェクトが見つかりません
-
ある文字列が全て数字であるか...
-
オブジェクト変数の取得について
-
CreateObjectとGetObjectの違い
おすすめ情報