通知を受け取る

UiPath StudioX

UiPath StudioX ガイド

チュートリアル: Excel ファイルの比較と、照合エラーのメール送信

このチュートリアルでは、請求書が保存されたスプレッドシートにある金額と、サプライヤーごとのサマリーが保存された CSV ファイルにある金額を比較するうかプロジェクトを作成します。これらのファイル間に何らかの照合エラーが発生した場合、その詳細情報を記述した CSV ファイルを作成して、メールで送信します。

以下のアクティビティから成るプロジェクトを作成します。

  1. 請求書を含む Excel ファイルを指定するための [Excel ファイルを使用] アクティビティ 2 つと、データを照合するためのファイルを指定します。
  2. 一連の [セルに書き込み] アクティビティで照合 Excel ファイルに 2 つの列見出しを追加し、1 つのサプライヤーの合計請求額、およびその額と初期サマリー額との差額を計算します。1 つのサプライヤーを対象に追加した数式を、シートにあるすべての行にコピーする [範囲をコピー] アクティビティを追加します。これにより、すべてのサプライヤーに対して同じ計算が実行されるようにします。つづいて、[セルに書き込み] アクティビティをもう 1 つ追加し、セルに差額の合計を書き込みます。
  3. [条件分岐] アクティビティ: このアクティビティには、照合エラーが発生した場合 (差額の合計が 0 より大きい場合) に、その詳細を記述した CSV ファイルを作成し、指定したアドレスにメールで送信するという条件を追加します。メール タスクのため、[条件分岐] アクティビティ内に [デスクトップ版 Outlook アプリを使用] アクティビティを追加してメールを送信する Outlook アカウントを指定します。さらに、[デスクトップ版 Outlook アプリを使用] 内に [メールを送信] アクティビティを追加します。

ステップ 1: プロジェクトを設定し、必要なファイルを取得します。

  1. 既定の設定を使用して新しい空のプロジェクトを作成します
  2. このチュートリアルでは、このページ下部にあるボタンを使用して、オートメーション プロジェクトを収めたアーカイブをダウンロードして展開します。プロジェクト フォルダーに data フォルダーをコピーします。

ステップ 2: Excel ファイルをプロジェクトに追加

  1. デザイナー パネルで [アクティビティを追加] plus_iconplus_icon アイコンをクリックし、画面上部の検索ボックスで [Excel ファイルを使用] アクティビティを検索して、それを選択します。[Excel ファイルを使用] アクティビティがデザイナー パネルに追加されます。
  2. アクティビティで次の操作を行います。
    • [Excel ファイル] フィールドの横にある [参照] browse filesbrowse files アイコンをクリックし、invoices.xlsx ファイルを参照して選択します。
    • [参照名を指定] フィールドに「Invoices」と入力します。
      これで、このオートメーションでは名前を Invoices としたファイル invoices.xlsx を操作対象として指定したことになります。
  3. [Excel ファイルを使用] アクティビティ内の [アクティビティを追加] plus_iconplus_icon アイコンをクリックし、もう 1 つ [Excel ファイルを使用] アクティビティを追加します。
  4. 2 番目のアクティビティで、次の操作を行います。
    • [Excel ファイル] フィールドの横にある [参照] browse filesbrowse files アイコンをクリックし、reconcile.xlsx ファイルを参照して選択します。
    • [参照名を指定] フィールドに「Rec」と入力します。
      これで、このオートメーションでは名前を Rec としたファイル reconcile.xlsx を操作対象として指定したことになります。

ステップ 3: データを照合ファイルにコピーします。

  1. 2 番目の [Excel ファイルを使用] 内の [アクティビティを追加] plus_iconplus_icon アイコンをクリックし、画面上部の検索ボックスで [CSV を読み込み] アクティビティを検索して、それを選択します。このアクティビティが [Excel ファイルを使用] アクティビティに追加されます。
  2. [CSV を読み込み] アクティビティで、以下の手順を実行します。
    • [読み込み元ファイル] フィールドの横の [参照] browse filesbrowse files アイコンをクリックし、ファイル summary.csv を参照して選択します。
    • [出力先] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Summary [シート]] を選択します。フィールドの内容が、選択した [Rec] Summary で更新されます。
      これで、CSV ファイル summary.csv のデータを、Rec ファイルの Summary シートにコピーするように指定したことになります。
  3. 2 番目の [Excel ファイルを使用] 内の [CSV を読み込み] アクティビティの下の [アクティビティを追加] plus_iconplus_icon アイコンをクリックします。つづいて、画面上部にある検索ボックスで [範囲をコピー] アクティビティを探して選択します。[Excel ファイルを使用] アクティビティに [範囲をコピー] アクティビティが追加されます。
  4. [範囲をコピー] アクティビティで、次の操作を行います。
    • [元の範囲] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Invoices] > [Invoices [シート]] を選択します。フィールドに、選択した範囲 [Invoices] Invoices が表示されます。
      これで、Invoices ファイルから Invoices シートをコピーするように指定したことになります。
    • [対象範囲] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Invoices [シート]] を選択します。フィールドに、選択した範囲 [Rec] Invoices が表示されます。
      これで、コピーした範囲を Rec ファイルの Invoices シートに貼り付けるように指定したことになります。

ステップ 4: データ比較に必要な計算を実行します。

  1. [アクティビティ] パネルで [Excel] タブを選択し、[セルに書き込み] アクティビティを 2 番目の [Excel ファイルを使用] 内の [範囲をコピー] の下にドラッグ アンド ドロップします。[セルに書き込み] アクティビティがデザイナー パネルに追加されます。
  2. [セルに書き込み] アクティビティで、以下の手順を実行します。
    • [書き込む内容] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[テキスト] を選択します。テキスト ビルダーに「Calculated Amount」と入力します。
    • [書き込む場所] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Excel 内で示す] を選択します。スプレッドシートが Excel で開きます。セル C1 を選択して [確定] をクリックします。フィールドの内容が、選択した [Rec] Summary!C1 で更新されます。
      これで、Rec ファイルにある Summary シートの C 列の一番上のセルに、テキスト「Calculated Amount」を書き込むように指定したことになります。
  3. 前の [セルに書き込み] アクティビティの下に、もう 1 つ同じアクティビティを追加します。
    • [書き込む内容] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[テキスト] を選択します。テキスト ビルダーに「=IF(A2 <> "", SUMIF(Invoices!B:B, A2, Invoices!C:C), "")」と入力します。
    • [書き込む場所] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Excel 内で示す] を選択します。スプレッドシートが Excel で開きます。セル C2 を選択して [Confirm (確定)] をクリックします。フィールドの内容が、選択した [Rec] Summary!C2 で更新されます。
      これで、Rec ファイルにある Summary シートの C2 セルに、数式「=IF(A2 <> "", SUMIF(Invoices!B:B, A2, Invoices!C:C), "")」を書き込むように指定したことになります。この数式は、サプライヤーのセル (A2) が空でないことを確認し、Summary シートの A2 セルに記述されたサプライヤーについて、Invoices シートの C 列の値を合計します。
  4. 前の [セルに書き込み] アクティビティの下に、3 番目の同じアクティビティを追加して、そこで以下の手順を実行します。
    • [書き込む内容] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[テキスト] を選択します。テキスト ビルダーに「Difference」と入力します。
    • [書き込む場所] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Excel 内で示す] を選択します。スプレッドシートが Excel で開きます。セル D1 を選択して [確定] をクリックします。フィールドの内容が、選択した [Rec] Summary!D1 で更新されます。
      これで、Rec ファイルにある Summary シートの D 列の一番上のセルに、テキスト「Difference」を書き込むように指定したことになります。
  5. 前の [セルに書き込み] アクティビティの下に、4 番目の同じアクティビティを追加して、そこで以下の手順を実行します。
    • [書き込む内容] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[テキスト] を選択します。テキスト ビルダーに「=IF(A2 <> "", C2-B2, "")」と入力します。
    • [書き込む場所] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Excel 内で示す] を選択します。スプレッドシートが Excel で開きます。セル D2 を選択して [Confirm (確定)] をクリックします。フィールドの内容が、選択した [Rec] Summary!D2 で更新されます。
      これで、Rec ファイルにある Summary シートの D2 セルに、数式「=IF(A2 <> "", C2-B2, "")」を書き込むように指定したことになります。この数式は、サプライヤーのセル (A2) が空でないことを確認し、Summary シートのセル C2 と B2 の値の差を計算します。
  6. 最後の [セルに書き込み] アクティビティの下の [アクティビティを追加] plus_iconplus_icon アイコンをクリックし、画面上部にある検索ボックスで [範囲をコピー] アクティビティを探して選択します。[範囲をコピー] アクティビティがデザイナー パネルに追加されます。
  7. [範囲をコピー] アクティビティで、次の操作を行います。
    • [元の範囲] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Excel 内で示す] を選択します。スプレッドシートが Excel で開きます。範囲 C2:D2 を選択して [Confirm (確定)] をクリックします。フィールドの内容が、選択した [Rec] Summary!C2:D2 で更新されます。
    • [対象範囲] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Excel 内で示す] を選択します。スプレッドシートが Excel で開きます。範囲 C3-D20 を選択して [確定] をクリックします。フィールドの内容が、選択した [Rec] Summary!C3-D20 で更新されます。
    • [コピーする内容] ドロップダウン メニューの [数式] を選択します。
      これにより、コピーしたセル範囲 C2:D2 の数式を、シートにある同じ列の下の行にコピーするように指定したことになります。
  8. [アクティビティ] パネルの [Excel] タブを選択し、[セルに書き込み] アクティビティを最後の [範囲をコピー] アクティビティの下にドラッグ アンド ドロップします。[セルに書き込み] アクティビティがデザイナー パネルに追加されます。
  9. [セルに書き込み] アクティビティで、以下の手順を実行します。
    • [書き込む内容] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[テキスト] を選択します。テキスト ビルダーに数式「=SUM(Summary!D:D)」を入力します。
    • [書き込む場所] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Excel 内で示す] を選択します。スプレッドシートが Excel で開きます。Invoices シートを選択してから、セル F1 を選択して [Confirm (確定)] をクリックします。フィールドの内容が、選択した [Rec] Invoices!F1 で更新されます。
      これで、Rec ファイルにある Invoices シートの F 列の一番上のセルに、数式「=SUM(Summary!D:D)」を書き込むように指定したことになります。この数式は、Summary シートの D 列に表示された差の合計であり、Invoices シートの F1 セルに追加されます。

ステップ 5: 差額の合計が 0 より大きい場合に、照合に関する詳細をメールで送信します。

  1. 最後の [セルに書き込み] アクティビティの下の [アクティビティを追加] plus_iconplus_icon アイコンをクリックし、画面上部にある検索ボックスで [条件分岐] を探して選択します。[条件分岐] アクティビティがデザイナー パネルに追加されます。
  2. [条件分岐] アクティビティで、[条件] フィールドの右側のプラス記号 plus buttonplus button をクリックし、[条件ビルダー] を選択します。
  3. 次の手順に従い、[条件ビルダー] で「差額の合計が 0 より大きい場合」という条件を追加します。
    • 左側のフィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Excel 内で示す] を選択します。スプレッドシートが Excel で開きます。Invoices シートを選択してから、セル F1 を選択して [Confirm (確定)] をクリックします。フィールドの内容が、選択した [Rec] Invoices!F1 で更新されます。
    • 中央のドロップダウン メニューから [次の値より大きい] を選択します。
    • 右側のフィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[数値] を選択します。0 を入力して [保存] を 2 回クリックします。
      この条件が満たされた場合、[条件分岐] アクティビティの [Then] 分岐に追加したアクティビティが実行されます。
  4. [アクティビティ] パネルの [CSV] タブを選択し、[CSV に書き込み] アクティビティを [条件分岐] アクティビティの [Then] 分岐にドラッグ アンド ドロップします。[CSV に書き込み] アクティビティがデザイナー パネルに追加されます。
  5. [CSV に書き込み] アクティビティで、以下の手順を実行します。
    • [書き込み先ファイル] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[テキスト] を選択します。テキスト ビルダーに「reconcile 」と入力し、テキスト ビルダーの右側にあるプラス plus buttonplus button メニューから、[プロジェクト ノートブック (Notes)] > [Date [シート]] > [YYYYMMDD [セル]] を選択します。テキスト ビルダーのテキストが「reconcile Excel Date!YYYYMMDD」に更新されます。テキスト「.csv」を末尾に入力し、[保存] をクリックします。最終的なテキストは「reconcile Excel Date!YYYYMMDD.csv」になるはずです。
    • [書き込み元] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Rec] > [Summary [シート]] を選択します。フィールドの内容が、選択した [Rec] Summary で更新されます。
      これで、reconcile という語と今日の日付を名前に持つ CSV ファイルをプロジェクト フォルダーに作成し、そのファイルにRec ファイルの Summary シートをコピーするように指定したことになります。
  6. [アクティビティ] パネルで [メール] タブを選択し、[デスクトップ版 Outlook アプリを使用] アクティビティを、[条件分岐] アクティビティの [Then] 分岐内の [CSV に書き込み] アクティビティの下にドラッグ アンド ドロップします。
  7. このアクティビティの [アカウント] フィールドには、あらかじめ既定のメール アカウントが入力されています。別のアカウントを使用する場合は、ドロップダウン メニューから選択します。
    [参照名を指定] フィールドは既定値 Outlook のままとして、オートメーションでアカウントを参照するときは、この名前を使用します。
  8. [アクティビティ] パネルで [メールを送信] アクティビティをドラッグし、[デスクトップ版 Outlook アプリを使用] アクティビティ内にドロップします。
  9. [メールを送信] アクティビティで、以下の手順を実行します。
    • [送信元アカウント] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[Outlook] を選択します。
    • [コピー先] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[テキスト] を選択します。[テキスト ビルダー] ウィンドウに、メールの宛先とするメール アドレスを入力します。たとえば、自分宛てにメールが送信されるように、自分のアドレスを入力することもできます。[下書き] オプションを選択したままにすると、メールは送信されず Outlook の [下書き] フォルダーに保存されます。
    • [件名] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[テキスト] を選択します。テキスト ビルダー ウィンドウに「Reconciliation errors for」と入力し、テキスト ビルダーの右側にあるプラス plus buttonplus button メニューから、[プロジェクト ノートブック (Notes)] > [Date [シート]] > [Today [セル]] を選択します。テキスト ビルダーのテキストが「Reconciliation errors for Date!Today」に更新されます。
    • [本文] フィールドの右側にあるプラス記号 plus buttonplus button をクリックし、[テキスト] を選択します。[テキスト ビルダー] ウィンドウに、メールの本文となるテキストを入力します。たとえば、「 One or more suppliers have reconciliation errors. See attached CSV file for details.」と入力します。
    • [添付ファイル]で [ファイル] を選択し、手順 5 で [CSV に書き込み] アクティビティに使用したものと同じファイル名「reconcile Excel Date!YYYYMMDD.csv」を入力します。たとえば、[CSV に書き込み] アクティビティの [書き込み先ファイル] フィールドでテキスト ビルダーを開き、すべてのテキストをコピーし、ファイル添付フィールドのテキスト ビルダーに貼り付けることができます。
  1. StudioX のリボンで [保存] をクリックしてオートメーションを保存し、[実行] をクリックしてオートメーションを実行します。

請求書 (invoices) とサマリー (summary) のデータがファイル reconcile.xlsx にコピーされ、計算が実行されます。サプライヤーの 1 社で、請求書の合計額がサマリーの額と一致しないため、ファイル reconcile.xlsx の Summary シートが、今日の日付を使用した名前の CSV ファイルにコピーされます。このファイルがメールに添付され、指定したアドレスに送信されます。添付ファイルのセル D3 の値が 0 より大きいことから、照合エラーのあるサプライヤーを特定できます。

サンプルをダウンロード

8 か月前に更新



チュートリアル: Excel ファイルの比較と、照合エラーのメール送信


改善の提案は、API リファレンスのページでは制限されています

改善を提案できるのは Markdown の本文コンテンツのみであり、API 仕様に行うことはできません。