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

[…] 列名があるExcelを処理する場合は、 JobAutoでExcelの行を繰り返し処理する方法|ヘッダーあり […]