
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
No.2ベストアンサー
- 回答日時:
すこしだけ判ったっぽいかも。
テスト条件
Excel2010
参照設定
Visual Basic for Applications
MIcrosoft Excel 14.0 Object Library
OLE Automation
Microsoft Visual Basic for Applications Extensibirity 5.3
Microsoft Office 14.0 Object Library
(Access にはまだ入れていません)
Excelの設定
ファイル→オプション→セキュリティセンター→マクロの設定から
VBA プロジェクト オブジェクト モデルへのアクセスを信頼する
にチェックを入れて置きます。
Sub refList()
'要参照設定 Microsoft Visual Basic for Application Extensibility x.x
Dim ref As Reference
For Each ref In Application.VBE.ActiveVBProject.References
Debug.Print ref.Name
Debug.Print ref.GUID
Debug.Print ref.Major
Debug.Print ref.Minor
Debug.Print "--------------"
Next
Set ref = Nothing
End Sub
これでイミディエイトウィンドウに設定のリストが出力されます。
Microsoft Access14.0 Object Library に参照設定のチェックを入れて
行うと
Access
{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}
9
0
が得られますので
Sub refSet()
Dim ref As Reference
With Application.VBE.ActiveVBProject.References
Set ref = .AddFromGuid("{4AFFC9A0-5F99-101B-AF4E-00AA003F0F07}", 9, 0)
Set ref = Nothing
End With
End Sub
のような事をするとAccessに参照設定できました。
Reference オブジェクトは、AccessにもありますのでVBE?を指定してあげないと
うまく行かないようです。(ちょっと怪しい解説)
少し思うのは、参照設定をVBAで自動的に行うよりも
参照設定を行っておいて開発し、出来上がったら参照設定を外して
CreateObject("Access.Application") で実行時バインディングにして
細々とした修正を行った方が良いように感じます。
回答ありがとうございます。
ご指摘の通りにしてみたところ、うまくいきました。ありがとうございます。
自分も最初は参照設定を外しても動くように修正していたのですが、作成したファイルや変数が多すぎて途中で挫折してしまいました。
新たに作成するものは参照設定しなくてもいいように作ってみたいと思います。
ありがとうございました。
No.1
- 回答日時:
Excelの参照設定に
Microsoft Visual Basic for Application Extensibility x.x
がありますのでチェックを入れてみてください。
x.x はバージョンによって異なります。
回答ありがとうございます。
ご指摘の通りにしてみると、コンパイルエラーはなくなりました。しかし、実行してみると参照設定は追加されていませんでした。
エラーを確認すると、「オブジェクトが必要です」となっていました。
Set Ref = References.AddFromGuid(strGUID, 1, 3)
の部分だと思うのですが、どのようにしたらよいのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「設定してほしい」と「設定さ...
-
31日に初海外旅行へ行くので...
-
固定電話の留守電設定について
-
JCOM利用で、TVを買い替えする...
-
A4判40文字×35行、フォントサイ...
-
ボタンが2つだけのデジタル時...
-
Googleナビで高速に乗って遠出...
-
ダイアログ間のデータ渡し
-
X-R管理図 管理限界線の更新頻...
-
無線LANルーターはリチウム電池...
-
Windows11搭載のノートpcの設定...
-
VLCのホットキーの設定が有効に...
-
AndroidのAPN設定をいじってい...
-
Googleカレンダーで祝日に予定...
-
プロキシの設定をバッチファイ...
-
DBMS_STATSのdegree句について
-
振動試験の掃引の条件設定について
-
VLCのイコライザ
-
トレイルカメラの説明書で分か...
-
SMSの受信について LINEの設定...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows11搭載のノートpcの設定...
-
Googleナビで高速に乗って遠出...
-
ボタンが2つだけのデジタル時...
-
「設定してほしい」と「設定さ...
-
AndroidのAPN設定をいじってい...
-
31日に初海外旅行へ行くので...
-
固定電話の留守電設定について
-
振動試験の掃引の条件設定について
-
時刻を自動で設定するができない
-
叶姉妹って本当に金持ちなんで...
-
APNがApplicationになっている
-
VLCのホットキーの設定が有効に...
-
A4判40文字×35行、フォントサイ...
-
OLYMPUSの日付について教えて欲...
-
アウトルック2019ですがIMAPで...
-
ウーバーイーツで楽天ペイで支...
-
WAKWAKメールのIMAP設定方法を...
-
JCOM利用で、TVを買い替えする...
-
【Town of Host】
-
バンダイ プリモプエル コプ...
おすすめ情報