表が2つあるExcelシートに対して
- データの読み込み
- データの削除
- データの追記
などをどのように実装できるかを、各アクティビティの挙動を見ながら考えていきます。
今回は、「範囲の読み込み」アクティビティの挙動について。
サンプルとして使うExcelは、次のようなもの。
※表が2つあるときはヘッダ行が1行目にないことも多いので、そのようなケースを想定しています。

※架空の部署・氏名であり、実際の人物や団体とは関係ありません。念のため…。
①シート全体を読み込んだ場合
まずは、下記のようにシート全体を指定した場合の読み込み領域がどうなるのかを確認。
Excel.Sheet("Sheet1")
「データテーブルをテキストとしてログ出力」アクティビティでカンマ区切りでログ出力した結果がこちら。

このログ結果から、読み込み領域は下記Excel画像の赤枠部分。
すべてのデータ(値)が含まれるように読み込まれています。

②列を指定した場合
次は、下記のように列を指定した場合の読み込み領域について。
Excel.Sheet("Sheet1").Range("B:F")
1行目がすべて空白でも、そこをヘッダ行として認識して読み込みを行っていることがわかります。
③セルを指定した場合
Rangeでセルを指定した場合は、そのセルから右下のデータが含まれる範囲を読み込まれるのですが、果たして表が2つの場合はどうなるか?
指定したセルが含まれる表の領域のみが読み込まれてほしいところです。

Excel.Sheet("Sheet1").Range("B4")
2つの表の領域を読み込んでます。
セル指定の場合は、そのセルから右下のデータをすべて含む形になります。
※明細テーブルの行数が部署別テーブルの行数よりも少なくなった場合は、次のような読込範囲になります。

H4(右側のテーブルのいちばん左上)を指定した場合を試してみましょう。
Excel.Sheet("Sheet1").Range("H4")
次回
参考







