★質問・概要
Q.JobAutoでブラウザからExcelへデータをコピー・貼り付けするロボットを作成しました。データ量はそれほど多くないのに処理に時間がかかります。処理時間を短縮する方法はありますか?
★回答
はい。データの取得方法とExcelへ書き込む順番を見直すことで、処理時間を短縮できる場合があります。
特に、Webページの表を1行ずつ処理し、各列の値をその都度Excelへ入力している場合は、Webページの表全体を先に取得して変数に格納し、必要なデータをまとめてExcelへ貼り付ける方法を検討してください。Excelへの書き込み操作を繰り返さずに済むため、処理の効率化につながります。
JobAutoには、Webサイトの表をExcelへ高速転記するRPAサンプル(上級者向け)があります。サンプルロボットをダウンロードして、処理の組み方を確認できます。
1.処理に時間がかかる理由
例えば、Webサイトの表から10行×5列のデータを取得し、セルに値入力アクションで1セルずつExcelへ転記すると、最大50回の書き込み処理を繰り返す構成になります。
Excelへの書き込み処理が多いと、その分アクションの実行に時間がかかることがあります。Webページを毎回検索して値を取得する構成でも、操作回数が増えます。
このような場合は、Webデータの取得とExcelへの書き込みを分け、Excelへはまとめて貼り付ける方法が候補になります。
2.WebデータをまとめてExcelへ貼り付ける流れ
Webサイトの表データをExcelへ転記する高速化サンプルでは、次の順番で処理します。
- Webページの表全体を取得し、変数に格納します。
- 取得した表のデータを配列に変換します。
- 配列の内容を1行ずつ処理し、Excelへ転記したい列の値を取り出します。
- 各行の値を、Excelへまとめて貼り付けるための変数に蓄積します。
- 全行のデータを準備したあと、クリップボードへ値をセットします。
- Excelの貼り付け先を指定し、ペーストしてまとめて転記します。
行単位のデータ抽出や変数の組み立ては繰り返しますが、Excelへのペーストは全行分を準備した後に実行するのがポイントです。
設定例やサンプルロボットは、Webサイトの表からExcelへの高速連携サンプルをご確認ください。
3.1件ずつ転記する方法との違い
| 比較する項目 | 1セルずつ転記する方法 | まとめて転記する方法 |
|---|---|---|
| Webページからの取得 | 行や列を繰り返して必要な値を取得する | 表全体を取得し、必要な列を変数で取り出す |
| データの一時保存 | 取得した値を都度転記する | 転記するデータを変数へ蓄積する |
| Excelへの書き込み | 行・列ごとに書き込みを繰り返す | 準備したデータをまとめて貼り付ける |
| 向いている処理 | 件数が少なく、入力先ごとに処理が必要な場合 | 表形式のデータを連続したセル範囲へ転記する場合 |
まとめて貼り付ける方法が必ず速くなるとは限りません。Webページの構造、データの件数、Excel側の数式や処理などによっても時間は変わるため、同じデータで実行時間を比較してください。
4.クリップボードとExcelのペーストを使う
JobAutoの「クリップボード操作」には「クリップボードへ値セット」があります。Excelへ転記するために作成した変数を、クリップボードへ格納できます。
Excelへの貼り付けには「ペースト」アクションを使用します。基本設定で、対象のブック、シート名、基点となるセルを指定してください。
貼り付け前に、データの行・列の区切りや並び順が、Excelの転記先に合っているかを少量のデータで確認してください。表の構造や転記する列が異なる場合は、変数へのデータの組み立て方を調整します。
設定方法は、クリップボード操作のマニュアルとExcelのペーストアクションのマニュアルをご確認ください。
5.処理時間が改善しない場合の確認事項
- Webページの取得:繰り返しのたびにページを開き直したり、同じ要素を何度も取得したりしていないか。
- Excelの書き込み:1セルごとの値入力を繰り返していないか。まとめて貼り付けできる表形式のデータか。
- 転記するデータ:必要な列だけを取り出せているか。見出し行や不要な行まで含めていないか。
- Excelの貼り付け先:正しいブック・シート・セルを指定しているか。既存データを上書きしないか。
- 実行時間:Webからの取得、変数での加工、Excelへの貼り付けのどこに時間がかかっているか。
Webページが複数ページに分かれている場合や、画面に表示されていないデータがある場合は、一度の取得で全件を取得できるとは限りません。必要なページや行が取得できているか確認してください。
6.表のデータを1行ずつ取得したい場合
Webページの表を1行ずつ処理しながらExcelへ転記する方法も使用できます。転記先ごとに個別の判定や操作が必要な場合は、この方法が適しています。
表の繰り返し処理については、Webページの一覧・表を繰り返し処理する方法を参照してください。
また、ブラウザの表をすべて取得する方法については、Webページの表のデータをすべて取得する方法も参考にしてください。
Excelへのデータ転記を高速化する具体例は、ブラウザからデータをまとめて取得して転記する操作例でも紹介しています。
関連するマニュアル・サンプル
- ブラウザからデータをまとめて取得して転記する操作例:ブラウザとExcelの処理順序を見直す例
- Webサイトの表をExcelへ高速転記するRPAサンプル:表全体を取得し、変数で加工して一括転記する例
- JobAutoでクリップボードを操作する方法:変数の値をクリップボードへセットする方法
- JobAutoでExcelにデータをペーストする方法:ブック・シート・基点となるセルの指定
- JobAutoでWebページの一覧・表を繰り返し処理する方法:1行ずつデータを取得する場合
- JobAutoでWebページの表のデータをすべて取得する方法:表からデータを取得するFAQ
