12

こんにちは、NTTデータ WinActor技術支援チームのYMです。
いつもユーザーフォーラムをご利用いただき、ありがとうございます。
"マイナーなライブラリ"のシリーズ 、今回は「Excel操作(データ一覧連携)」を取り上げます。

ライブラリの概要

「Excel操作(データ一覧連携)」は、ライブラリなのにノード「Excel操作」と同じアイコンなのが特徴です。
マニュアルを見ると「データ一覧で開いているExcel ファイルから値を取得します。」とありますが、
プロパティを開くと「値の取得」、「値の設定」、「マクロ実行」の3つの操作から選択できることがわかります。

実際に使ってみる

■値の取得

まず「値の取得」を使ってみましょう。
下のようなExcelファイルを用意します。
各商品の単価と個数のデータがあり、C7セルに予め総額が記載されています。
このExcelファイルをデータ一覧にインポートします。※5と6のチェックは外しておきます。

各商品の個数×単価の「累計金額」が、表示された「総額」と合っているかどうか、チェックするシナリオを作りました。
シナリオの流れは以下のようになっています。
 ①各商品の単価×個数を計算
 ②累計金額を計算
 ③ループの最後で表示された総額を取得  ←ここでライブラリ「Excel操作(データ連携)」を使用
 ④総額と累計金額を比較してメッセージを出力

ライブラリ「Excel操作(データ連携)」のプロパティでは、最初からファイル名に「$DATALIST-FILE」が入っているので、
セル位置:値⇒C7、格納先の変数:総額 とだけ設定します。

実行してみると、累計金額は「160」になるので、表示された総額が正しいというメッセージが表示されます。
しかし、なぜかデータ一覧にインポートしたのと同じExcelファイルが「読み取り専用」でもう1つ開いてしまいました。

■値の設定

次に「値の設定」を使ってみましょう。
同じExcelファイルのD7セルに累計金額を設定するようにシナリオを修正します。

ライブラリ「Excel操作(データ連携)」のプロパティの設定は次のようにします。
操作で「値の設定」を選択すると、デフォルトのファイル名「$DATALIST-FILE」が消えてしまうので、
設定値:累計金額、ファイル名:$DATALIST-FILE、セル位置:値⇒D7 と入力します。

実行すると累計金額が記入されました。
しかし、ここでも同じExcelファイルがもう1つ開いてしまい、新しく開いた読み取り専用のファイルの方に累計金額が設定されています。
元のファイルはそのままで更新されていません!

■マクロ実行

最後に「マクロ実行」を使ってみようとしましたが、データ一覧には拡張子.xlsm(マクロ有効ブック)のインポートができません。
ライブラリのプロパティでファイル名とマクロ名を設定すれば、マクロは実行できます。
ただ、データ一覧でマクロを含んだファイルを指定できないので、何も連携しないただのマクロ実行になってしまいます。

実際に使ってみた感想

このライブラリを使う利点は何だろうと考えてみました。
「値の取得」では、ファイル名の設定が不要、データ一覧で読み取っている行以外の場所を指定して値が取得ができる…
「値の設定」では、元ファイルのデータはそのまま維持して、別ファイルに結果を記入したいときに便利かも… と悩みましたが、
いずれもライブラリ「Excel操作(値の取得)」や「Excel操作(値の設定)」でファイルパスなどを設定すれば同じ処理ができます。

それよりも気になるのは、同じExcelファイルがもう1つ開いてしまうことで、シナリオの別の箇所で思わぬ動作につながる可能性があるということです。

実はこのライブラリはノード「Excel操作」とアイコンが同じであるだけでなく、中身もほぼ同じです。
ノード「Excel操作」との違いは、プロパティの「値の設定-ファイル名」に最初から「$DATALIST-FILE」が設定されているだけ。
しかも操作の種類を変更すると「$DATALIST-FILE」も消えてしまいます。

あえて使うならマニュアルのとおり「値の取得」になりますが、同じExcelファイルを二重に開いてしまうので使い勝手が悪いです。
同じ操作をしたいなら、データ一覧の変数を直接参照するか、「Excel操作(値の取得)」などの他のライブラリの使用をおすすめします。

おわりに

この記事が面白かった、参考になったと思っていただけたら、ぜひ「いいね!」ボタンを押してください。コメントもお待ちしています。
それでは、また次回!

※「いいね」はユーザーフォーラムに会員登録済みの方がログインしているときに押下できます。
ユーザーフォーラムの会員登録はメールアドレスがあればどなたでも無料で登録できます。

回答した質問

回答とコメントは、会員登録(無料)で閲覧できるようになります。
会員登録(無料)する