Excel VBAでOracleに接続するプログラムを作成することができるが、そのために、いろいろ準備が必要である。今回は、その準備を行ってみたので、その手順を共有する。
前提条件
下記記事の「ExcelファイルをExcel マクロ有効ブックとして保存」まで行い、ファイル名「DbDump.xlsm」で保存済みであること。
また、下記記事の内容に従い、Oracle XEのインストールとUSER_DATAテーブルの作成が完了していること。
やってみたこと
Oracleインストール状況の確認
Oracleインストール状況を以下のように確認する。
1) Oracleのディレクトリ(C:\oraclexe\app\oracle\product\11.2.0\server\bin)を確認し、OraOLEDB{バージョン}.dllがインストール済であることを確認する。
2) 以下のようにコマンドプロンプトを起動し、「sqlplus (ユーザー名)@(SID)」と接続した場合に表示されるバージョンが64ビット版であることを確認する。
Excelを64bit版に変更
使用していたExcelが32bit版の場合、Oracleが64bit版なので、このままだと実行時エラー「プロバイダーが見つかりません。正しくインストールされていない可能性があります。」が発生し、Excel VBAからOracleへの接続が行えない。そこで、以下の手順で、Excelを64bit版に変更する。
1) 以下のサイトに接続し、Microsoftアカウントでログイン
https://portal.office.com
2) 以下の画面に遷移するので、「Officeのインストール」リンクを押下
3) 以下の画面に遷移するので、「Officeのインストール」ボタンを押下
5) バージョンを「Office 64ビット」と変更し、「インストールする」ボタンを押下
7) 下記のダイアログが表示されるので、ダウンロードが完了するまで待機
8) ダウンロードが完了すると、下記ダイアログが表示されるので、「閉じる」ボタンを押下
9) Excelを起動し、以下のように、更新後のエクセルバージョンが64ビットになっていることを確認する
なお、上記Excelのバージョンを確認する手順については、以下のサイトを参照のこと。
https://office-hack.com/excel/version/
ADOを利用するための設定を追加
ADOとは、Microsoftが提唱しているデータアクセス技術のことで、Excel VBAでOracleに接続するには、ADODB(Microsoft ActiveX Data Objects)への参照設定を追加する必要がある。その手順は以下の通り。
3) Microsoft ActiveX Data Objects (バージョン) Libraryを選択し、「OK」ボタンを押下。なお、ここではバージョン2.8を選択している
要点まとめ
- Excel VBAでOracleに接続するには、OracleとExcelを両方64bit版(または両方32bit版)に設定すると共に、ADODB(Microsoft ActiveX Data Objects)への参照設定を追加する必要がある。