外部ワークブックのテーブルにあるデータを参照する

今回は、「DioDocs(ディオドック)」で「外部参照」を設定して、別のExcelワークブックにあるテーブルのデータを参照する方法を紹介します。こちらは2024年7月17日(水)にリリースされた「DioDocs V7J SP1」でDioDocs for Excelに追加された機能です。

外部参照を設定するには?

DioDocsでExcelワークシート内のセルに外部参照を設定するには、「クロスワークブック数式」を使用します。以下は、E5セルに='[workbook1.xlsx]Sheet1'!B2を設定して、別のExcelワークブック「workbook1.xlsx」のワークシート「Sheet1」の「B2」セルを参照しています。

// 新規ワークブックの作成
Workbook workbook = new();

// 外部参照式を設定
workbook.Worksheets[0].Range["E5"].Formula = "='[workbook1.xlsx]Sheet1'!B2";

// 外部ワークブックを読み込み
Workbook externalworkbook = new();
externalworkbook.Open("workbook1.xlsx");

// 外部参照を更新
foreach (var item in workbook.GetExcelLinkSources())
{
    workbook.UpdateExcelLink(item, externalworkbook);
}

// EXCELファイルに保存
workbook.Save("crossworkbookformula.xlsx");
外部参照を設定するには?
外部参照を設定するには?

外部参照を利用してテーブルのデータを参照してみる

外部参照を利用してテーブルのデータ集計を実行してみます。以下のような集計用のExcelワークブック「sendai.xlsx」を準備して、別のExcelワークブック「aoba.xlsx」、「izumi.xlsx」、「miyagino.xlsx」、「taihaku.xlsx」にあるテーブルの小計を集計する外部参照を設定します。

外部参照を利用してテーブルのデータを参照してみる

外部参照で参照するExcelワークブック「aoba.xlsx」、「izumi.xlsx」、「miyagino.xlsx」、「taihaku.xlsx」は、それぞれ以下のような小計をD4~D9セルに持っています。

外部参照を利用してテーブルのデータを参照してみる

集計用のExcelワークブック「sendai.xlsx」で集計値を表示するB4~B7セルのFormulaプロパティに、それぞれ以下のようなクロスワークブック数式を設定します。Excelのテーブルでデータを扱う際に使用する構造化参照と同じように、「テーブル名」と「列名」を指定してデータを参照することが可能です。

// 集計用のワークブックを読み込み
Workbook workbook = new();
workbook.Open("sendai.xlsx");

// 外部参照を設定
workbook.Worksheets[0].Range["B4"].Formula = "=SUM('[aoba.xlsx]'!テーブル1[小計])";
workbook.Worksheets[0].Range["B5"].Formula = "=SUM('[izumi.xlsx]'!テーブル1[小計])";
workbook.Worksheets[0].Range["B6"].Formula = "=SUM('[miyagino.xlsx]'!テーブル1[小計])";
workbook.Worksheets[0].Range["B7"].Formula = "=SUM('[taihaku.xlsx]'!テーブル1[小計])";

これで各ワークブックの小計を参照して集計することができます。実行すると以下のように外部参照を持つセルB4~B7で集計結果を確認できます。

外部参照を利用してテーブルのデータを参照してみる

今回紹介した機能については以下のサンプルやデモで動作を確認いただけます。

クロスワークブック数式についてはこちらも記事でも紹介しています。

DioDocsの最新バージョン「V7J SP1」の新機能については、以下のページで紹介していますのでこちらも是非ご覧ください。

さいごに

弊社Webサイトでは、製品の機能を気軽に試せるデモアプリケーションやトライアル版も公開していますので、こちらもご確認いただければと思います。

また、ご導入前の製品に関するご相談やご導入後の各種サービスに関するご質問など、お気軽にお問合せください。

\  この記事をシェアする  /