DB操作を行うExcelマクロについて説明します。
今回の記事は『第2回』となります。
第1回:Configシートの設定値をVBA上で取り扱う
第2回:SELECT文により取得したデータをExcelに格納
第3回:Excel から INSERT, UPDATE, DELETE を実行
第4回:Excel から MERGE を実行
【Excelダウンロードはこちら】
※2021/2/5改修版
・ODBC接続からOraOLEDB.Oracle接続に変更
・INSER,UPDATE,MERGE文の生成方法を修正
概要
第2回目は、SELECT文により取得したデータをExcelに格納する方法について説明します。
Excelの「Configシート」にDB接続を設定し、「SQLシート」にデータ抽出するSQL文を記載してマクロを実行します。
そうすると、各シート(SQLシートのシート名に記載した名称)にSELECTした結果が貼り付けられます。
下記に操作手順を示します。
①DB接続設定
ConfigシートにDB接続の設定を記載します。(DBはOracleのみ対象)
SERVICE_NAME(サービス名)はOracleのクライアントもしくはサーバーをインストールして作成・設定した tnsnames.ora に記載されています。
例. 下記 tnsnames.ora の例では、TESTDB.GRAWORがサービス名です。
②Oracle接続テスト
Oracle DBに接続し、 Configシートの接続設定が正しいか確認します。
「オラクルへの接続テスト完了」とメッセージが表示されれば、問題なくOracle DBに接続できています。
③SQL文を実行
SQL実行ボタンを押すと、SQL文を実行し、各シートに抽出データを貼り付けます。
SQLシートの「シート名」項目に記載した名称のシートが作成され、SQLの抽出結果が貼り付けられます。
パッケージ構成
Excelマクロ内の構成は下記となります 。(使用するモジュールのみ記載)
ソースコード解説
今回は、modCmnGlbConst と Configurator の説明は省略します。
※上記はDB操作 – 第1回にて記載
①DBManager
DB操作を行うクラスです。Oracle DBへの接続やSQLを実行する機能を備えます。
必要な変数・関数を抜粋し、 解説はコメントとして記載しています。
今回は以上となります。
この機能を活用すれば、ボタン一つで DBから最新のデータを抽出可能となります。
例えば、データ集計業務の効率化などに役立てることができます。
次回は、Excelシートに入力したデータを基に、Oracle DBにINSERT・UPDATE・DELETEする方法を説明します。