JobAutoのExcel操作で使用する「ブックインデックス」と「シートインデックス」について説明します。
JobAutoのExcelアクションでは、操作するExcelブックやシートを指定して処理を行います。 ブックやシートを指定する方法の1つが「インデックス」です。
ブックインデックスを使用する場合は、ロボットを作成したときと実行したときでExcelを開いている状態が異なると、インデックスがずれてエラーになることがあります。
このページでは、ブックインデックスとシートインデックスの仕組み、インデックスがずれる例、Excel名を使った指定方法、Excel操作前に強制終了してインデックスずれを防ぐ方法について説明します。
ブックインデックスとは
JobAutoのExcel操作では、操作するブックをインデックスで指定できます。
ブックインデックスの番号は、ロボットを作成または実行しているPCでExcelを開いた順番によって割り当てられます。
ブックインデックスは、次のように「インデックス番号_ブック名」の形式で表示されます。
0_ブック名 1_ブック名 2_ブック名
ブック名にあたる部分がなく「0_」のように表示されている場合は、ブックを開いていない状態です。

ブックインデックスがずれるとどうなるか
ブックインデックスを使ってExcelを操作する場合は、ロボットを作成したときと実際に実行するときで、Excelを開いている状態が変わらないよう注意が必要です。
すでに開いているExcelの数や順番が変わると、JobAutoが操作するExcelへ割り当てられるブックインデックスも変わることがあります。
ロボット作成時とスケジュール実行時でインデックスがずれる例
ロボットを作成しているとき
たとえば、Excelで作成した手順書を開きながらJobAutoのロボットを作成しているとします。
その状態で「エクセルの新規作成」を実行すると、新しく作成したExcelにはブックインデックス「1」が割り当てられます。
そのため、「セルに値入力」などのExcelアクションを、ブックインデックス「1」に対して実行するよう設定します。
スケジュール実行するとき
作成したロボットをスケジュール実行するときに、ロボット作成時に開いていた手順書のExcelが開かれていなかったとします。
この場合、「エクセルの新規作成」で作成されたExcelにはブックインデックス「0」が割り当てられます。
しかし、ロボット内の「セルに値入力」はブックインデックス「1」を操作する設定になっています。
その結果、ブックインデックス「1」のExcelが存在せず、Excelアクションでエラーが発生します。
ブックインデックスを使用する場合は、実行時にExcelを開いている状態によって番号が変わる可能性があります。
Excel名で対象を指定できる場合は、ほかのExcelが開いていることによるブックインデックスのずれを避ける方法として利用できます。
シートインデックスとは
JobAutoのExcel操作では、操作するシートもインデックスで指定できます。
シートインデックスの番号は、そのExcelでシートを作成した順番によって割り当てられます。

シートを名前で指定する方法もあります。
また、JobAuto 0.10.10以降では、CSVファイルを開いた場合、シートの指定はデフォルトでインデックスが選択されます。
ブックインデックスとシートインデックスの違い
| 種類 | 番号が決まる基準 |
|---|---|
| ブックインデックス | PCでExcelを開いた順番 |
| シートインデックス | Excel内でシートを作成した順番 |
ブックインデックスとシートインデックスでは、番号が決まる基準が異なります。
Excelアクションを設定するときは、現在指定しているのがブックのインデックスなのか、シートのインデックスなのかを確認してください。
スケジュール実行でExcel操作がエラーになる場合
手動でロボットを実行したときは正常に動作するものの、スケジュール実行するとExcel操作でエラーになる場合は、ブックインデックスのずれも確認してください。
ロボットを作成・テストしたときと、スケジュール実行したときで、あらかじめ開いているExcelの数や順番が違っていないか確認します。
ブックインデックスが変わる可能性がある場合は、Excel名での指定や、Excel操作前の「エクセルを強制終了する」の利用を検討してください。
Excelの操作対象が違う場合の確認順序
まず、Excelアクションの「ブック」で、操作するExcelが正しく指定されているか確認してください。
インデックスで指定している場合は、現在開いているExcelとブックインデックスの対応を確認します。
ロボット作成時と実行時でExcelを開いている状態が異なる場合は、ブックインデックスがずれていないか確認してください。
インデックスずれを避けたい場合は、Excel名による指定も確認します。
Excel操作の開始時点で開いているExcelの状態をそろえたい場合は、「エクセルを強制終了する」を実行してから対象のExcelを開く方法もあります。
シートが違う場合は、シート名またはシートインデックスの設定を確認してください。
Excel操作全般については、 JobAutoのExcel操作マニュアル も確認してください。
