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

前回
データの読み込みを実装する2つの方針
「範囲の読み込み」アクティビティの挙動を踏まえると、それぞれの表を読み込む方法としては、次の2つが考えられます。
- 「範囲を読み込み」アクティビティで単一のセルを指定して読み込んだ後、「データテーブルをフィルター」アクティビティを使って必要な範囲のみを抽出
- 最終行の行数を取得し、Range(B4:F14)のように始点と終点のセルを指定して「範囲の読み込み」
それぞれの方針で取得してみます。
方針1
1.セルを指定して「範囲を読み込み」
「範囲の読み込み」の挙動についてで見たように、セルを指定して「範囲を読み込み」を行うと、そのセルから右下のデータをすべて含む形で読み込まれます。
Excel.Sheet("Sheet1").Range("B4")
2.「データテーブルをフィルター」アクティビティで必要な範囲のみを抽出
読み込み範囲(赤枠)に対して、実際に抽出したい範囲は青枠で囲った部分。

不要な行や列を取り除くために、「データテーブルをフィルター」アクティビティで行う処理は次の2つ。
- B列からF列のみを抽出
- 空白行を削除(左の表が右の表より行数が少なくなる場合に備えて)
設定は、次の通り。
このアクティビティを、セルを指定した「範囲を読み込み」アクティビティの後に実装してあげれば、左側の表のみを抽出することができます。
3.実装
無事に左側の表だけを抽出することができました。
ただ、この方針だと不要な領域まで読み込んでいるため、行数が増えれば増えるほど処理に時間がかかるようになってしまうのが欠点です。
方針2
1.最終行を取得して終点のセルを設定
最終行数の取得で見たように、VBAコードを利用もしくは「最初/最後のデータ行を検索」アクティビティを使って最終行を取得することができます。
2.セル範囲を指定して読み込み
最終行を取得することができたので、終点のセルを設定できるようになりました。
そのため、セル範囲を「B4:F14」のように指定することができます。







