VBA(マクロ)でOracle Databaseに接続する方法【オラクルデータベース接続】

1月 29, 2023

VBA(マクロ)でOracle Databaseに接続する方法【データベース接続】

VBA(マクロ)でOracle DatabaseにDB接続する方法がわからない人
Oracle DatabaseのデータをExcelやAccessに取り込みたい人
Oracle DatabaseのデータをVBAで処理したい人向けに書いています。

本記事の内容

・ExcelVBAやAccessVBAからOracle Databaseにデータベース接続する方法

を紹介します。

会社の業務自動化やデータ分析等でOracleのデータベースからデータを取得することがあると思います。

定期的な業務はVBAで自動的にデータ取得して、業務時間を大幅に短縮ですことが期待できます。

ぜひご活用ください。

 

VBA(マクロ)からOracle Databaseに接続する方法

本記事でVBAからOracle Databaseに接続するためには以下の2つの設定が必要です。

・Oracle Clientのインストール
・VBAの参照設定

それでは、以下で設定方法を説明します。

Oracle Clientインストール

本記事ではOracle Provider for OLE DBを使用したOracle接続方法を行います。
Oracle Provider for OLE DBはOracle Clientをインストールすることで使用可能になります。

Oracle Clientのインストールはこちらから可能です。
OfficeのソフトとOracle Clientのビット数(32bit Or 64bit)は一致するようにインストールしてください。  

最近Oracle Clientのインストールで停止したままインストールが進まない現象がありました。もし起こった場合は以下のリンクをご確認ください。
→「【Oracle Database Client 12c】インストール途中で停止する解決方法

 

VBAの参照設定

参照設定からADO(ActiveX Data Objects)を使用することでExcelやAccess等のOfficeソフトからOracle Databaseに接続することができます。

まず、ADOを使用するための参照設定を設定します。

①Visual Basic Editorを起動する

 
②Visual Basic Editorのメニューバーの「ツール」をクリックした後、「参照設定」をクリックする

 
③参照設定画面が開かれた後、参照可能なライブラリファイルから「Microsoft ActiveX Data Objects X.X Library」にチェックを入れてOKボタンを押す

ADOのバージョンは環境によって異なりますので、環境に合わせて読みかえください。

わからなければ、最新のバージョンを選択して使用してみてください。
 

最後に、以下ののプログラムでOracle Databaseへの接続するプログラムを紹介します。

Oracle Databaseへの接続

Oracle Databaseに接続、切断するサンプルプログラムを以下に記載します。

  1. Option Explicit
  2. Public ORA_CN As New ADODB.Connection
  3. Public Const ORA_PROVIDER As String = “OraOLEDB.Oracle"        'プロバイダー
  4. 'データベースアカウント情報
  5. Public Const ORA_USER_ID As String = “user"         'ユーザID
  6. Public Const ORA_PASSWORD As String = “password"         'ユーザパスワード
  7. 'TNSサービス名を使用せず直接接続する場合
  8. Public Const ORA_HOST_NAME As String = “localhost"     'データベース名"
  9. Public Const ORA_PORT_NO As String = “1521"         'データベースのポート"
  10. Public Const ORA_SERVICE_NAME As String = “SERVICE"     'サービス名"
  11. 'TNSサービス名で接続する場合
  12. 'Public Const ORA_DATA_SOURCE As String = “DATA_SOURSE" 'ネットサービス名
  13. '*****************************************
  14. '* Oracle Database接続
  15. '*****************************************
  16. Sub ORACLE_CONNECT()
  17.     Set ORA_CN = CreateObject(“ADODB.Connection")
  18.     'TNSサービス名を使用せず直接接続する場合
  19.     RBN_CN.Open “Provider=" & ORA_PROVIDER _
  20.                 & “;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)" _
  21.                 & “(HOST=" & ORA_HOST_NAME & “)" _
  22.                 & “(PORT=" & ORA_PORT_NO & “))" _
  23.                 & “(CONNECT_DATA=(SERVICE_NAME=" & ORA_SERVICE_NAME & “)))" _
  24.                 & “;User ID=" & ORA_USER_ID _
  25.                 & “;Password=" & ORA_PASSWORD
  26.     'TNSサービス名で接続する場合
  27.     'RBN_CN.Open “Provider=" & ORA_PROVIDER _
  28.     '            & “;Data Source=" & ORA_DATA_SOURCE _
  29.     '            & “;User ID=" & ORA_USER_ID _
  30.     '            & “;Password=" & ORA_PASSWORD
  31. End Sub
  32. '*****************************************
  33. '* Oracle Database接続解除
  34. '*****************************************
  35. Sub ORACLE_DISCONNECT()
  36.     ORA_CN.Close
  37.     Set ORA_CN = Nothing
  38. End Sub

5行目:プロバイダーを設定する
7行目:データベースアカウントのユーザIDを設定する
8行目:データベースアカウントのパスワードを設定する
11行目:データベース名を設定する
12行目:データベースのポートを設定する
13行目:サービス名を設定する
16行目:ネットサービス名を設定する

スポンサーリンク

 

まとめ

ExcelVBAやAccessVBAからOracle Databaseに接続する方法を紹介しました。

Oracleのデータベースからデータを自動的に取得するプログラムに活用いただけたらと思います。

業務効率化等に必ず役に立つはずです。

最後までありがとうございました。

 

VBAからSQLServerに接続する方法
VBAで外部のAccessに接続する方法
【Oracle Database】結合条件を含んだデータの削除方法-SQL文 EXISTS句-
【Oracle Database Client 12c】インストール途中で停止する解決方法
も紹介していますので、もしよろしければご覧ください。

 

¥891 (2023/02/02 12:04時点 | Amazon調べ)
Microsoft Public Affiliate Program (JP)(マイクロソフトアフィリエイトプログラム)