VBAでOracle Databaseに接続する方法【データベース接続】

7月 22, 2022

VBAでOracle DatabaseにDB接続する方法がわからない方向けに書いています。

本記事の内容

ExcelVBAやAccessVBAからOracle Databaseにデータベース接続する方法を紹介します。

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

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

ぜひご活用ください。

 

VBAからOracle Databaseに接続する方法

Oracle Clientインストール

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

Oracle Clientのインストールはこちらから可能です。
 

参照設定

参照設定から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に接続、切断するサンプルプログラムを以下に記載します。

  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

 

 

まとめ

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

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

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

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

 

VBAからSQLServerに接続する方法
VBAで外部のAccessに接続する方法
も紹介していますので、もしよろしければご覧ください。

 

 

スポンサーリンク