重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excel2010のマクロでODBCのデータを拾ってきたいのですが、ODBCにアクセスする際、
パスワード入力を求められます。
パスワード入力もマクロ内に組みたいのですが、記述方法がわかりませんので、教え
てください。

エクセルのマクロについての知識は、記録させたものを実行する、若干の記述変更が
できるくらいで、VBAに関する知識はほぼ無いに等しいです。

記録させたマクロの記述は次のようになっています。(コピペではなく、プリントアウト
を手入力してますので、誤記があるかもしれません。)

1. Sub Macro()
2. Cells Select
3. Selection ClearContents
'上2行で取り込み済みのデータを全削除
4. With ActiveSheet. ListObjects. Add(SourseType:=0, Sourse:=Array(Array(_
5. "ODBC;DNS=de-ta-be-su; UID=yu-za-ID ; ;DBQ=DE-TA-BA-SU;DBA=W;... (以下略)
'上2行で取り込みの条件を記述(実際は数行)
6. .RowNumbers = False
7. .FillAdjacentFormulas = False
8. .PreserverFormatting = True
9. .RefreshOnFileOpen = False
10. .BackgroundQuery = True
11. .RefreshStyle = xllnserDeleteCells
12. .SavePassword = False
13. .SaveData = True
14. .AdjustColumnWidth = True
15. .RefreshPeriod = 0
16. .ListObject.DisplayName = 'テーブル_xxxxx_からのクエリ_1'
17. .Refresh BackgroundQuery:= False
18. End With
19. End Sub

マクロを1行づつ実行すると17行目の記述を実行する際にODBCのパスワード入力を求め
られる状態です(データベース名とユーザーIDは入力されている)。
5行目に PWD=pasuwa-do とか入れてみたのですがダメでした。

12行目をTrueにしてあげればいいのでしょうか?
又、13行目のSaveDataとはデータベース側を書き換えるって意味でしょうか?エクセル側
を書き換えるって意味でしょうか?

稚拙な文面でわかりづらいかもしれませんが、よろしくお願いいたします。

A 回答 (1件)

通常は5行目に


"ODBC;DNS=de-ta-be-su; UID=yu-za-ID ; ;DBQ=DE-TA-BA-SU;DBA=W;... (以下略);PWD=pasuwa-do;"
といった具合と思いますが。



savedata、savepasswordはlistobjectじゃなく多分querytableのメンバなので、そこの部分のマクロについては覚え間違い転記ミスじゃありませんか。
意味はオブジェクトブラウザからヘルプを確認すれば、いずれも説明されています。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!