シートと行のループ
テーブルが含まれた複数のシートおよび同じタイプのデータがある Excel ドキュメント内でループするようにロボットを作成することができます。たとえば、Excel スプレッドシートの各シートで年度の個別の月のアカウント情報が表示されるとします。この場合、ロボットが最初に複数のシートをループしてから、各シートの行をループするようにします。空のシートなど、他のシートと同じタイプのデータを含まないシートがドキュメントに含まれている状態への対処が必要になる場合もあります。次の図は、このようなロボットの構造を示しています。
![Excel のシートおよび行のループ](../../All_Images/LoopSheetsAndRows.png)
このロボットの最初のステップは、URL から Excel ドキュメントをロードするページ読込 ステップです。ロボットの次のステップは、ドキュメントのすべてのシートをループする Excel 内ループ ステップです。ロボットは、この最初のループ ステップの各イテレーションに対して、シートの各行をループする別の Excel 内ループ ステップを実行します。行をループするステップの「エラー処理」プロパティの Then が [次のイテレーション] に設定されます。つまり、ステップの範囲ファインダーがテーブル サイズを持つ範囲の照合に失敗すると、次のイテレーションに進みます。
この簡素化されたエラー処理は、シートが空になっている単純な状態に対応できますが、完全に異なるタイプのデータが含まれるテーブルがシートにある場合は対応できません。一般的には、シートの一部を抽出するステップを挿入し、その後に構造をテストするステップを挿入する必要があります。たとえば、列ヘッダーを抽出してから、列ヘッダーが指定された構造を持っていることをテストします。次の図は、ロボットに追加されたエラー処理を示しています。
![Excel のシートおよび行のループとテスト](../../All_Images/LoopSheetsAndRowsWithTest.png)
この例では、ヘッダー抽出という名前のセル値抽出ステップがシートの最初の行を変数に抽出しており、値判定ステップには値を判定する条件があります。値が一致すると、ロボットは次のステップ (行のループ ステップ) を実行します。値が一致しない場合、ロボットは後続のステップ全てをスキップします。値判定ステップの Do プロパティは [後続のステップすべてをスキップ] します。