★アクションの説明、概要
JobAutoのExcel操作で、 ヘッダー(列名)がなく、 1行目からデータが入力されているExcelを 1行ずつ繰り返し処理する方法について説明します。
「行の繰り返し」アクションでは、 操作するExcelブックとシート、 繰り返すデータ範囲を指定し、 その範囲にあるデータを1行ずつ順番に処理します。
ヘッダーがないExcelでは、 「1行目を列名とする」にチェックを入れません。 これにより、 対象範囲の1行目も実データとして 繰り返し処理の対象になります。
各列の値は、 「列名と変数の対比表」で設定した JobAutoの変数へ格納できます。 そのため、 現在処理している行の値を ブラウザ操作、Excel操作、条件分岐などの 後続処理で利用できます。
また、 繰り返し処理を開始する行を「開始行」で指定できます。 データ範囲が実行ごとに変わる場合は、 「範囲を拡張する」を使用できます。
このページでは、 ヘッダーがないExcelを1行目から繰り返し処理する場合の設定と、 ヘッダーがあるExcelとの違いを中心に説明します。
1行目に「氏名」「商品コード」「金額」などの 列名があるExcelを処理する場合は、 JobAutoでExcelの行を繰り返し処理する方法|ヘッダーあり を確認してください。
★アクションの作成方法
★アクションの設定画面について
アクション設定画面の設定項目についての説明は以下の通りです
1.基本設定
1-1.ブック
名前、インデックス、変数参照から選択して設定を行います。
>名前
操作対象のブック(エクセルファイル)をプルダウンで選択します
>インデックス
操作対象のブック(エクセルファイル)はロボデザインで開いたまたは作成した順番にインデックスが定義されています。プルダウンで選択します。
>変数参照
操作対象のブック名(エクセルファイル名)が格納されている変数を設定します
1-2.シート名
名前、インデックス、変数参照から選択して設定を行います。
「エクセルを開く」アクションでCSVファイルを開いた場合は、シートの指定ではデフォルトでインデックスが選択されます。
>名前
操作対象のシートをプルダウンで選択します
>インデックス
操作対象のシートは作成された順番にインデックスが定義されています。プルダウンで選択します。
>変数参照
操作対象のシート名が格納されている変数を設定します
ブックやシートの指定方法について詳しくは、 JobAutoでExcelのブック・シートを指定する方法 も確認してください。
1-3.データ範囲設定
繰り返し処理を行う範囲を固定する場合は、現在の範囲を選択します。
処理のたびに繰り返し処理を行う範囲が変わる可能性がある場合は、範囲を拡張するを選択します。
繰り返しの対象範囲をALL列まで指定することができます。
1-4.対象となるセル
繰り返し処理を行う範囲を設定します。変数参照可能です。
Excelの「名前の定義」で作成した名前を指定することもできます。
1-5.1行目を列名とする
繰り返し処理を行う範囲の1行目を列名(ヘッダー)として、処理対象から外す場合はチェックを入れます。作成済の同アクションを編集で開き、チェックを入れる、またはチェックを外す場合は、列名と変数の対比表の再作成が必要です。
1-6.列名と変数の対比表
行の繰り返しでは、現在処理している行の各列から取得した値をJobAutoの変数へ格納します。
どの列の値をどの変数へ格納するかを「列名と変数の対比表」で設定します。
・+
対比表の定義を追加します。
・列名
値を取得する列を設定します。
・変数名
取得した値を格納するJobAutoの変数を設定します。
・ー
対比表の定義を削除します。
・列名を変数に登録する
「1行目を列名とする」にチェックを入れている場合は、Excelの1行目に設定されている列名を使って、JobAutoの変数を作成できます。
ヘッダーがないExcelでは、通常「1行目を列名とする」を使用しないため、列名から変数を登録する設定は使用しません。
「1行目を列名とする」の設定を変更した場合でも、「対比表を再作成しますか?」というダイアログは表示されません。必要に応じて「列名と変数の対比表」を再作成してください。
・開始行
繰り返し処理を開始する行を指定します。
たとえば、設定した繰り返し範囲の3行目から処理を開始する場合は、「3」を設定します。
Excelシート全体の行番号ではなく、設定した繰り返し範囲の中で何行目から処理するかを指定します。
・グループ名
列名から作成する変数を格納する新しい変数グループ名を設定します。
・変数の識別子
作成する変数を固有に識別するための文字を設定します。
2.高度な設定
2-1.範囲の名前
ループの名前を設定します。ここで設定した名前は、「セルに値入力」などのExcelアクションの基本設定にある「シート名」で選択できます。
2-2.取得する値
セルの保持している値は2019/8/29だが、表示されている値は2019年8月
2019/8/29を取得する場合、エクセルが保持している値を選択します。
2019年8月を取得する場合、セルが表示している値を選択します
2-3.セルへのフォーカス
アクションを実行したときに処理対象のセルを選択状態にする場合は、フォーカスするを選びます。選択状態にしない場合は、フォーカスしないを選びます。
2-4.非表示セルの扱い
フィルタなどで非表示になっているセルをループの対象にする場合は、処理対象に含めるを選びます。ループの対象にしない場合は、処理対象に含めないを選びます
2-5.アクション有効
このアクションを無効にする場合は、チェックを外します
3.エラー発生時の対応
3-1. エラー時の処理
エラーが発生したときの設定を行います。詳細はこちらをご確認ください。
3-2.基点となる条件分岐
エラー時の処理で条件分岐の次のフローに移動を選択したときに、設定することができます。アクションでエラーが発生した場合、移動先の条件分岐を選択します。
3-3. エラー時にログ出力
エラーが発生したときにログに出力するか設定します。スケジュール実行したときのログへ出力されます。エラーとして扱わない場合は、チェックを外します。詳細はこちらをご確認ください。
ヘッダーがないExcelを1行目から繰り返す場合
1行目から実際のデータが入力されているExcelでは、 「1行目を列名とする」にチェックを入れずに 「行の繰り返し」を使用します。
たとえば、次のようなExcelです。
A001 商品A 1000 A002 商品B 2000 A003 商品C 3000
この場合、 1行目の「A001・商品A・1000」も 実データとして処理します。
「1行目を列名とする」は使用しない
ヘッダーがないExcelでは、 「1行目を列名とする」のチェックを外します。
チェックを入れると、 対象範囲の1行目がヘッダーとして扱われ、 繰り返し処理の対象から外れます。
1行目も処理する必要がある場合は、 チェックが入っていないことを確認してください。
各列とJobAutoの変数を対応させる
「行の繰り返し」では、 現在処理している行の各列の値を JobAutoの変数へ格納します。
どの列の値を どの変数へ格納するかは、 「列名と変数の対比表」で設定します。
ヘッダーがない場合は、 Excelの1行目にある値を 列名として使用するのではなく、 処理する列と格納先の変数を設定して使用します。
繰り返し処理が次の行へ進むと、 各変数には次の行の値が格納されます。
格納した値は、 繰り返しの中に配置した ブラウザへの値入力、 Excelへの値入力、 条件分岐などで使用できます。
ヘッダーありからヘッダーなしへ変更する場合
作成済みの「行の繰り返し」アクションで、 「1行目を列名とする」のチェックを変更した場合は、 「列名と変数の対比表」の再作成が必要です。
ヘッダーありで作成したアクションを ヘッダーなしへ変更する場合は、 「1行目を列名とする」のチェックを外すだけでなく、 対比表の内容も確認してください。
データ件数が毎回変わる場合
繰り返し対象となる範囲が毎回同じ場合は、 「データ範囲設定」で 「現在の範囲」を使用します。
データ件数によって 繰り返し範囲が変わる場合は、 「範囲を拡張する」を使用します。
「対象となるセル」には JobAutoの変数を使用でき、 Excelの「名前の定義」で作成した名前も指定できます。
途中の行から処理を開始する場合
「開始行」では、 設定した繰り返し範囲の 何行目から処理を開始するか指定できます。
ヘッダーがないExcelでは 1行目から実データが始まるため、 開始行を変更している場合は、 必要な最初のデータを 飛ばしていないか確認してください。
保持値と表示値を使い分ける場合
高度な設定の「取得する値」では、 セル内部で保持している値と、 Excel画面上に表示されている値を 使い分けることができます。
| 設定 | 取得する値 |
|---|---|
| セルが保持している値 | セル内部に保持されている値 |
| セルが表示している値 | Excel画面上に表示されている値 |
日付や数値に表示形式が設定されている場合は、 後続処理でどちらの値が必要なのか確認して設定してください。
非表示になっている行を処理する場合
フィルターなどによって非表示になっているセルを 繰り返し処理の対象にするかどうかは、 高度な設定の「非表示セルの扱い」で設定します。
「処理対象に含める」を選択すると、 非表示セルも繰り返し対象になります。
「処理対象に含めない」を選択すると、 非表示セルは繰り返し対象から除外されます。
処理中のセルをExcel画面上で確認する場合
高度な設定の「セルへのフォーカス」では、 行の繰り返しを実行するときに 処理対象となっているセルを 選択状態にするか設定できます。
Excel画面上で現在の処理位置を確認したい場合は 「フォーカスする」、 選択状態にする必要がない場合は 「フォーカスしない」を選択します。
シートが保護されている場合
シートの保護が設定されているExcelで 「行の繰り返し」を実行すると、 1行ループしたところで処理が終了します。
この場合は、 「シートの保護・解除」アクションで シートの保護を解除してから、 「行の繰り返し」を実行してください。
「ヘッダーあり」と「ヘッダーなし」の違い
| Excelの形式 | 設定 |
|---|---|
| 1行目が列名になっている | 「1行目を列名とする」にチェックを入れる |
| 1行目から実データが入っている | 「1行目を列名とする」にチェックを入れない |
たとえば、 1行目に「氏名」「商品コード」「金額」などの 列名が設定されている場合は、 ヘッダーありの設定を使用します。
1行目から 「A001」「商品A」「1000」のような 実際のデータが入力されている場合は、 ヘッダーなしの設定を使用します。
ヘッダーがあるExcelを処理する場合は、 JobAutoでExcelの行を繰り返し処理する方法|ヘッダーあり を確認してください。
「行の繰り返し」と「列の繰り返し」の違い
| Excelのデータ構成 | 使用するアクション |
|---|---|
| 1件のデータが1行に並んでいる | 行の繰り返し |
| 1件のデータが1列に並んでいる | 列の繰り返し |
社員一覧、商品一覧、受注一覧など、 1件のデータが1行ずつ縦方向に並んでいる場合は、 「行の繰り返し」を使用します。
月別データなど、 1件分のデータが1列ずつ横方向に並んでいる場合は、 「列の繰り返し」を使用します。
ヘッダーなしの行の繰り返しがうまく動かない場合
- 「ブック」と「シート名」で、 操作対象となるExcelとシートが 正しく指定されているか確認します。
- 「1行目を列名とする」に チェックが入っていないか確認します。
- 「対象となるセル」に、 必要なデータ範囲が 正しく設定されているか確認します。
- データ件数が実行のたびに変わる場合は、 「データ範囲設定」で 「範囲を拡張する」が必要か確認します。
- 「列名と変数の対比表」で、 各列と格納先の変数が 正しく対応しているか確認します。
- 「1行目を列名とする」の設定を変更した場合は、 列名と変数の対比表を 再作成しているか確認します。
- 「開始行」を設定している場合は、 必要な最初のデータを 飛ばしていないか確認します。
- 取得した値が想定と異なる場合は、 「セルが保持している値」と 「セルが表示している値」の どちらを選択しているか確認します。
- フィルターなどで行が非表示になっている場合は、 「非表示セルの扱い」を確認します。
- シートが保護されている場合は、 保護を解除してから 行の繰り返しを実行します。
- アクション自体が実行されない場合は、 「アクション有効」に チェックが入っているか確認します。
