Excel 行のループ処理

Excel 行のループ処理

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

概要

このガイドでは、RPA ワークフロー内で Excel ファイルの各行データを処理する方法を説明します。これを行うために、Excel データを読み取るメイン ワークフロー と、各行を個別に処理するサブワークフローの 2 つのワークフローを作成します。

主なユースケース:

データ移行:Excel から CRM、ERP、データベースなどの他システムへのデータ移行
データ変換: 書式設定、計算、フィルタリングなど、Excel 内でのデータ加工
Web フォーム自動化:Excel の各行のデータを使って Web フォーム入力を自動化
API 連携: Excel の各行のデータを API エンドポイントへ送信

メイン ワークフローの作成

1. 新しいフローを作成する
    1. My Flowsページに移動し、Create flowをクリックします。
    2. フロー名と説明を入力し、ワークフローを保存するフォルダーを選択します。
    3. 次に、ワークフローを実行するRPA エージェントを選択します。RPA エージェントは、ワークフローを実行するデスクトップマシンです。フローは選択したエージェント上で実行されます。
      1. エージェントは後からワークフロー ビルダー内で変更できますが、ファイルパスやその他の設定が新しいエージェントと互換性があることを確認してください。

2. トリガーを設定する
ワークフローを作成する最初のステップは、トリガーを選択することです。トリガーとは、ワークフローを開始するイベントです。この例では、File or フォルダー event triggerを使用し、トリガーイベントをCreatedに設定します。これにより、RPA ボットは特定のフォルダーを監視し、そのフォルダーに新しいファイルが追加されるたびにワークフローが起動されます。


3. Excel ファイルを開いて読み取る
    1. Open Excelタスクを使用してファイルパスを指定します。トリガーの出力から取得した動的ファイルパスを使用できるため、特定のフォルダーに新しいファイルが追加されるたびに、そのファイルパスが使用されます。
      1. 特定の固定ファイルパスから常に読み取りたい場合は、静的なファイルパスを使用することもできます。
       
    1. Read from Excelタスクを使用して、目的のシートからデータを抽出します。必要に応じて、シート名、ヘッダー行、データ形式を設定します。ここでは、必要なシートからすべてのデータを読み取ります。Read data from > Entire sheetを選択し、ヘッダー行を適切に設定します。
    2. 今回はトリガーからの動的ファイルパスを使用しているため、ファイルからシート名を直接取得することはできません。そのため、Custom Value for Sheet name 項目でシート名を手動で指定する必要があります。
メモ:抽出したデータを Slack や Zoho CRM、カスタム関数などのクラウドアプリのアクションでさらに処理する予定がある場合は、Use the output data in subsequent cloud app actions? オプションでYesを選択してください。これにより、Excel ファイルからのデータが RPA サーバーに転送され、他のクラウドアプリのアクションやカスタム関数で操作・利用できるようになります。

一方、処理内容が Excel ファイル間でのコピーや、Excel と ERP システム間でのデータ転送などローカル環境内で完結する場合は、Noを選択できます。これにより、データ処理はローカル環境内にとどまり、不要な RPA サーバーへのデータ転送を避けられます。
  1. 次のステップでこの出力データをカスタム関数内で使用します。Use the output data in subsequent cloud app actions? ではYesを選択してください。
4. カスタム関数を作成する
  1. LOGICタブに移動し、+ カスタム関数をクリックしてから、Create カスタム関数をクリックします。
  2. 関数に名前を付けます。たとえば「processExcelRow」など。
  3. シートから読み取った Excel データを受け取るために、型が「String」の入力パラメーターを追加します。例: 「excel_data」。



    こちらがカスタム関数のコードスニペットです:
    1. void processExcelRow(string excelData)
      {
      data_list = input.excelData.toJSONList(); // 各行を反復処理できるよう、入力文字列を JSON リストに変換します。
      for each row_data in data_list
      {
      final_map = map(); // 各行ごとに、データを格納するマップを作成します。

      // row_data.get('Employee Name') の列名が、Excel シートの列ヘッダーと一致していることを確認してください。
      final_map.put('Name', row_data.get('Employee Name'));
      final_map.put('Email', row_data.get('Email Address'));
      final_map.put('Department', row_data.get('Department'));

      //「Invoke URL」タスクを使用してサブワークフローを呼び出し、データマップをパラメーターとして渡します。
      call_flow2 = invokeurl
      [
      url: 'Replace sub ワークフロー Webhook trigger URL こちら'
      type: POST
      parameters: final_map
          
      ]; } }

  4. カスタム関数を保存します。ワークフロー ビルダー画面に戻り、このカスタム関数をメイン ワークフローに追加します。関数の入力には、Excel シートから抽出したデータを設定します。



サブワークフローの作成

1. 新しいフローを作成する
  1. My Flowsページに移動し、Create Flowをクリックします。
  2. サブワークフローに「Process Excel Row Data」などの名前を付け、ワークフローを保存するフォルダーを選択します。
  3. 最後に、ワークフローを実行するRPA エージェントを選択します。
2. トリガーを設定する
  1. このワークフローのトリガーとしてWebhookトリガーを選択します。コピー ボタンを使用して Webhook URL をコピーします。


  2. 次に、メイン ワークフローに切り替え、各 Excel 行を処理するために作成したカスタム関数を探します。
  3. カスタム関数内のinvokeUrl タスクに、差し込み項目の URL が表示されます。これを、前の手順でサブワークフローの設定からコピーした実際の Webhook URL に置き換え、関数を保存します。


  4. サブワークフローの Webhook トリガー設定画面でTestボタンをクリックします。これにより、メイン ワークフローから送信されることを想定したデータ構造をシミュレートするサンプルペイロードをワークフローに送信できます。(必須ではありませんが、強く推奨されます。)


  5. メイン ワークフローに戻り、Test and Debug機能を使用します。


  6. 監視対象のフォルダーに、データを含むサンプルの Excel ファイルを配置します。
  7. メイン ワークフローはファイルを処理し、各行からデータを抽出して、Webhook URL を使用してサブワークフローにサンプルペイロードを送信します。

  8. Doneをクリックすると、Webhook トリガーのテストが完了します。これで、後続のワークフローアクションでペイロードのデータを使用し、さらに処理できるようになります。
3. ワークフローを構築する
このワークフローでは、Excel の各行に対して実行したいアクションを定義します。たとえば、Web フォームの入力、データベースの更新、行データに基づくメール送信などが考えられます。

Web フォーム入力の例
  1. Web フォーム入力を自動化するには、RPA Recorder を使用します。RPA Recorder をクリックし、続いて Web ブラウザーを選択します。また、Zoho RPA のChrome 拡張機能をインストールしていることを確認してください。
  2. Web レコーダーを使用して、Web フォーム入力に必要な手順を記録します。
  3. Web サイトへの移動、入力フィールドへのデータ入力、フォーム送信などの操作を記録します。
  4. 必要な手順をすべて記録したら、録画を停止します。


  5. 次に、Web レコーダーで記録した手順を確認します。不要なステップがある場合は、この画面から削除できます。あるいは、再度記録し直したり、この処理をキャンセルして最初からやり直すこともできます。


  6. 記録したステップを編集し、最初の Webhook トリガー テストで取得した入力ペイロードデータを使うように設定してから、変更を保存します。その後、期待どおりに動作することを確認するため、ワークフローを十分にテストします。


  7. 必要に応じてワークフローを調整し、エラーハンドリングやログ出力の仕組みを追加します。
  8. 最後に、両方のワークフローを有効化します。指定したフォルダーに新しいファイルが作成されるたびに、メイン ワークフローが Excel シートを読み取り、各行の Excel データに対して Web フォーム入力を行うようサブワークフローを起動します。


    1. 詳細については、以下のサンプルボット実行を参照してください。