Excel から Oracle のデータを取得。

[Oracleがない場合]
インスタントクライアント32ビット(Basic、odbc、sqlplusをダウンロードし、解凍して同じフォルダに入れて、odbc.exeを起動する。またはPathにフォルダを追加する。(?)

[1]
c:\Windows\SysWOW64\odbcad32.exe
を起動。

[2]
システムDSNに追加。
Oracle in OraClient11g_home1
(SQDORA32.DLL)

[3]
データソース:****
(アクセスするためのソース名を指定する)

サービス名:localhost:1521/XE
(expressの場合)

ユーザID:****
(アクセスするテーブルのユーザ名)

[4]
「Test Connection」でユーザのパスワードを入力し、アクセスできることを確認して登録完了。

[5]
デスクトップでテキストファイルを作成。
名前の変更
test.udl

[6]
ダブルクリックして起動。
Oracle Provider for OLE DB
データソース:localhost:1521/XE
ユーザ名:****
パスワード:****
接続テストで接続できることを確認。
パスワードを保存するにチェックしてOK.

[7]
テキストエディタで開く。
Provider=OraOLEDB.Oracle.1;Password=****;Persist Security Info=True;User ID=****;Data Source=localhost:1521/XE
となっている。これは64ビット版の設定のため、Excel(32ビット)からは使えなかった。

[8]
Excelを起動。
ファイルのオプションで、リボンのメニューに[開発]を表示させる。

デザインモードでボタンを追加。
ダブルクリックして接続するコードを記述。(32ビットのシステムDSNに登録したサービスにアクセスする)

Dim test As String
test = "Provider=MSDASQL;Password=****;Persist Security Info=True;User ID=****;Data Source=****"
Dim con As New ADODB.Connection
Call con.Open(test)

Dim sql As String
sql = "SELECT ***, ***, *** FROM ***"

Dim Rst As New ADODB.Recordset
Set Rst = con.Execute(sql)
Range("A1").CopyFromRecordset Rst

[9]
ツール>参照
Microsoft ActiveX Data Object 6.1 Library
Microsoft ActiveX Data Object Recordset

[メモ]
・Alt + F11 でVBAを起動。
・Shift + F2 でコード定義。Shift + Ctrl + F2 で戻る

・日付を選択するカレンダーを作成
http://ateitexe.com/excel-vba-calendar-control/

・行番号を表示するアドイン、XMLコメントを追加するアドイン
http://homepage1.nifty.com/mtj-k/software/office_vb6/index.html

・エディタ背景色の変更(黒板)
http://www.moug.net/tech/exvba/0150130.html

管理者権限でコマンドプロンプトを起動。
DLLをコピーして実行。
C:\Windows\SysWOW64>regsvr32.exe VB6IDEAddXMLCommentAddin.dll
C:\Windows\SysWOW64>regsvr32.exe VB6IDEAddLineNumbersAddin.dll

・オラクルのテーブル作成
http://d.hatena.ne.jp/replication/20121119/1353300326

・Insert文
http://www.atmarkit.co.jp/ait/articles/0104/11/news002.html