アクティビティ
最新
バナーの背景画像
生産性を高めるアクティビティ
最終更新日 2024年4月26日

Excel ファイル内の行をフィルター処理して削除する

以下の例では、.xlsx ファイルから不要な行を削除する方法と、特定の基準を適用して情報をフィルター処理する方法について説明します。[データ行を削除][範囲を読み込み (ワークブック)][範囲に書き込み] などのアクティビティを示します。これらのアクティビティは、UiPath.Excel.Activities パッケージに含まれています。
この例で使用される .xlsx ファイルには、NameKmPriceSellerType の列が含まれています。オートメーション プロセスは、SellerType 列から値 OtherPrivate Seller を含むすべての行を削除し、フィルター処理された結果を含む新しいシートを作成します。

サンプルと同等のオートメーション プロセスは以下のように構築できます。

  1. Studio を開いて、新しいプロセスを作成します。プロセスの既定の名前は Main です。

    注: プロジェクト フォルダーで使用する .xlsx ファイルを必ず追加してください。このページの下部からサンプルをダウンロードして、サンプルに含まれるファイルを使用することもできます。
  2. ワークフロー デザイナー[フローチャート] をドラッグします。

    • 次の変数を作成します。

      変数名

      変数の型

      既定値

      carsList

      WorkbookApplication

      N/A

      inputList

      System.Data.DataTable

      N/A
  3. [フローチャート][Excel アプリケーション スコープ] アクティビティをドラッグし、[Start] ノードに接続します。

    • [Excel アプリケーション スコープ] アクティビティをダブルクリックして開きます。
    • [プロパティ] パネルで、[表示名] フィールドに Delete Data を追加します。
    • [ブック パス] フィールドに .xlsx ファイルのパスを追加します。このサンプルの場合は Cars.xlsx です。
    • [自動保存][新しいファイルを作成]、および [可視] オプションのチェック ボックスを選択します。これによりロボットが新しい Excel ブックを作成し、それに加えられたすべての変更を自動的に保存し、アクションを実行しながら Excel ファイルを前面で開くことができるようになります。
    • [ブック] フィールドに carsList 変数を追加します。
  4. [Excel アプリケーション スコープ] アクティビティ内の [実行] シーケンスを選択し、次の変数を作成します。

    変数名

    変数の型

    既定値

    filterList

    System.String[]

    {"Private Seller", "Other")

  5. [実行] シーケンス内に Excel の [範囲を読み込み] アクティビティをドラッグします。

    • [プロパティ] パネルで [シート名] フィールドに名前 "Cars" を追加します。
    • 表の最初の行をヘッダーとみなすために [ヘッダーを追加] チェック ボックスを選択します。
    • [データ テーブル] フィールドに変数 inputList を追加します。
  6. [範囲を読み込み] アクティビティの下に [繰り返し (コレクションの各要素)] アクティビティを配置します。

    • [繰り返し] フィールドに値 word を追加します。
    • [プロパティ] パネルで [TypeArgument] ドロップダウン リストからオプション String を選択し、[値] フィールドに変数 filterList を追加します。
  7. [繰り返し (コレクションの各要素)] アクティビティ内の [本体] コンテナーを選択し、次の変数を作成します。

    変数名

    変数の型

    既定値

    query

    文字列

     

    RowsToDelete

    System.Data.DataRow[]

     

    deletedRows

    Int32

     
  8. [実行] コンテナー内に [代入] アクティビティをドラッグします。

    • [左辺値 (To)] フィールドに変数 query を、[右辺値 (Value)] フィールドに式 string.Format("[SellerType]='{0}'", word) を追加します。これにより、SellerType 列の一致する値が返され、query 変数に格納されます。フィルター処理に使用する語と一致する DataRow オブジェクトを文字列に変換するために string.Format メソッドが使用されます。
  9. もう 1 つの [代入] アクティビティを追加し、最初のアクティビティの下に配置します。

    • [左辺値 (To)] フィールドに変数 RowsToDelete を、[右辺値 (Value)] フィールドに式 inputList.Select(query) を追加します。
  10. 最初の 2 つの [代入] アクティビティの下に 3 番目の [代入] アクティビティを追加します。

    • [左辺値 (To)] フィールドに変数 deletedRows を、[右辺値 (Value)] フィールドに式 RowsToDelete.Count-1 を追加します。これにより、削除する必要がある行のコンテナーが作成されます。
  11. [代入] アクティビティの下に [繰り返し (前判定)] アクティビティを配置します。

    • [Condition] フィールドに式 deletedRows>=0 を挿入します。つまり、変数 deletedRows の値が 0 に等しくなるまで [本体] セクションのアクティビティが実行されます。
  12. [データ行を削除] アクティビティを [繰り返し (前判定)] アクティビティの [本体] セクションにドラッグします。

    • [データ テーブル] フィールドに変数 inputList を追加します。
    • [行] フィールドに式 RowsToDelete(deletedRows) を追加します。
  13. [データ行を削除] アクティビティの下に [代入] アクティビティを配置します。

    • [左辺値 (To)] フィールドに変数 deletedRows を、[右辺値 (Value)] フィールドに式 deletedRows-1 を追加します。これにより、変数 deletedRows0 に等しくなるまで実行されるループが作成されます。
  14. [フローチャート] ワークフローに戻ります。
  15. [Excel アプリケーション スコープ] アクティビティをドラッグし、前の Delete Data という表示名の [Excel アプリケーション スコープ] アクティビティに接続します。

    • [Excel アプリケーション スコープ] アクティビティをダブルクリックして開きます。
    • [プロパティ] パネルで、[表示名] フィールドに Filter Data を追加します。
    • [自動保存] オプションと [新しいファイルを作成] オプションのチェック ボックスを選択します。これによりロボットは新しい Excel ブックを作成し、それに加えられたすべての変更を自動的に保存できます。
    • [ブック] フィールドに carsList 変数を追加します。
  16. [Excel アプリケーション スコープ] アクティビティの [実行] コンテナー内に [アプリケーションを閉じる] アクティビティをドラッグします。

    • このオートメーションで使用する .xlsx ファイルを開きます。この例では Cars.xlsx です。
    • [オプション メニュー] ボタンをクリックして、[画面上で指定] オプションを選択し、.xlsx ファイルを指定します。
  17. [アプリケーションを閉じる] アクティビティの下に Excel の [範囲に書き込み] アクティビティをドラッグします。

    • [プロパティ] パネルで [シート名] フィールドに名前 "Cars2" を追加します。
    • [データ テーブル] フィールドに変数 inputList を追加し、[ブック パス] フィールドにパス "Cars.xlsx" を追加します。
    • 表の最初の行をヘッダーとみなすために [ヘッダーを追加] チェック ボックスを選択します。
  18. プロセスを実行します。オートメーション プロセスにより、指定されたデータが削除され、フィルター処理された情報を含む新しいシートが作成されます。

Was this page helpful?

サポートを受ける
RPA について学ぶ - オートメーション コース
UiPath コミュニティ フォーラム
UiPath ロゴ (白)
信頼とセキュリティ
© 2005-2024 UiPath. All rights reserved.