
No.3ベストアンサー
- 回答日時:
> Excel VBAで参照設定をモジュールで行いたい
このような需要は、例えば WinXP, Win2000 のように異なる OS が
混在する環境であっても使用するライブラリへの参照設定を有効に
するためかと思いますが...
Excel について言えば、開発 PC 以外でそれを実行しようとしても
・参照不可となった時点で、ライブラリに依存したコードは
コンパイルエラーとなり、実行不可となる
つまり、
・参照設定を更新するコードも当然動かない
のですけども、その点については大丈夫ですか?
参照設定を更新するというアプローチではなく、#1 ご回答のように、
・CreateObject を使う(レイトバインド)
・使用が想定される PC の OS, OFFICE の一番下位バージョンに
合わせてコードを書く
・最初から特殊なライブラリは使わない
といった工夫をした方が確実ですよ。
もし上述の問題が問題とならない、またはクリアされている状況での
ご質問でしたら、パス指定の AddFromFile に加え、AddFromGUID
メソッドも考えてみて下さい。
例えば、システムフォルダなら
WinXP --> C:\Windows\System32
Win2K --> C:\WinNT\System32
といった違いがありますから。
No.2
- 回答日時:
こんにちは。
実用性はおいといて、方法論としてなら
既に Wendy02 さんが書かれてますが、 AddFromFile メソッド でできますね。
Sub Lib_Add()
Const fn As String = "scrrun.dll" '追加するライブラリを指定
Dim ref As Object
Dim msg As String
With ActiveWorkbook.VBProject
For Each ref In .References
If ref.FullPath Like "*" & fn Then Exit For
Next ref
If ref Is Nothing Then
.References.AddFromFile fn
msg = "参照追加."
Else
msg = "参照済み."
Set ref = Nothing
End If
End With
MsgBox msg
End Sub
On Error Resume Next
ActiveWorkbook.VBProject.References.AddFromFile "scrrun.dll"
でもいいかもしれませんが。
Sub Lib_Get() '参考:参照済みLib列挙
Dim ref As Object
For Each ref In ActiveWorkbook.VBProject.References
Debug.Print ref.Name, ref.Description, ref.FullPath
Next ref
End Sub
#確か、XP/2003では[ツール]-[マクロ]-[セキュリティ]の
#「Visual Basic プロジェクトへのアクセスを信頼する」の
#チェックが必要だったかと思います。
No.1
- 回答日時:
こんばんは。
単に、参照設定をプログラムで行いたいといわれても、全体的な話では出来ないように思います。
一般のアドイン等なら、
ThisWorkbook.VBProject.References.AddFromFile パス& "\ファイル名"
で出来ると思いますが、他は、CreateObject でオブジェクトの呼び出しだと思います。Excelでは、参照設定自身が、下位バージョンとの整合性でエラーが出ない限りは、そのようなコードは使わないような気がしますが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
意味不明の実行時エラーで困っ...
-
ビルドが実行できない 先へ進...
-
IT初心者です 仕事で、vb.netで...
-
ACCESSで設定した帳票の用紙サ...
-
Windows PowerShellでC言語を実...
-
vba 時間の引き算 例えば 15:00...
-
C++Builder5で画像データを用紙...
-
VB.NET(2017)で インストーラを...
-
印刷ダイアログを表示させない方法
-
印刷画面が表示されない
-
VBAで印刷の成功判定
-
画面を表示せずに印刷
-
発行元:不明???
-
androidで.exeを実行できますか?
-
PHPでPDFファイルの直接印刷
-
VBのtextboxでの印刷枚数設定
-
MSDOS(バッチファイル)でプロセ...
-
fortran 作図
-
C#VB、exeに埋め込んだexeの実行
-
経過日数を調べたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
意味不明の実行時エラーで困っ...
-
ManagementClassが見つからない。
-
VB.NETで参照設定したDLLの修正...
-
C#ソースをCSCファイルにてコン...
-
IT初心者です 仕事で、vb.netで...
-
VB.Net リビルド 意味不明なメ...
-
Using System.Drawing がうまく...
-
VB.NETでDLLを読み込ませる時に...
-
オブジェクト(dll)のレジストリ...
-
VB2008→VB2010でエラーが出てま...
-
ビルドが実行できない 先へ進...
-
VBAの参照設定について
-
MS Visual Studio 6.0のEnterpr...
-
DLLを作成してVBAから使用する...
-
VBAからDLLをCALLしたいのですが
-
msvcr120d.dllがないというエラー
-
VB2010で作成したdllからtlbが...
-
エラーメッセージ
-
【VB.NET】開いているフォルダ...
-
vc++ dll excel vba
おすすめ情報