0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【UiPath】[列を削除]の挙動や留意点と実装例

Last updated at Posted at 2025-09-07

挙動と実装時の留意点

「先頭行をヘッダーとする」のチェックの有無

[列を削除]アクティビティは、「先頭行をヘッダーとする」のチェックの有無によって「列名」の指定の仕方が異なってくる。

  • チェックあり:ヘッダー項目名で指定する
  • チェックなし:列名称(A,B,C,…)で指定する

そのため、ヘッダー行がない場合でも「先頭行をヘッダーとする」のチェックを外してA,B,Cなどで指定して列を削除することができる。

ヘッダー行が1行目にない場合の「ソース」の指定方法

下記画像のように、表データがA1セルから始まっていない場合、「ソース」にヘッダー行の範囲を指定してあげれば、ヘッダー項目名で指定して列の削除が可能。

(サンプルデータ)
DeleteColumn_2.jpg

例えば上記のようなデータであれば、「ソース」にRangeで"B4:K4"を設定してあげればヘッダー名で指定して列削除ができる。

DeleteColumn_3.jpg

(実行結果)
"地域"(K列)が削除された
DeleteColumn_4.jpg

列名称で繰り返し削除する場合は、列がズレていくことに注意

列を削除すると、当然削除した列より右にある列の位置が左へズレていく。
ヘッダー項目名を指定して削除するのであれば、ズレても問題ないが、列の名称(A,B,C,…)を指定して列を繰り返し削除する場合は、列がズレていくことを考慮に入れて実装する必要がある。

いちばん簡単な対策としては、右の列から削除すること。
そうすれば、後に削除する列の位置は変わらないので、意図しない列を削除してしまうといったことが避けられる。

実装例

例として、ファイルパスやシート名、削除する列(カンマ区切りの文字列 例:D,E,F,K)を引数として受け取り、順番に削除するフローを実装してみる。

削除する表データと削除したい列(赤枠)は下記画像の通り。
DeleteColumn_6.jpg

具体的な処理手順は、次の通り。

  1. 受け取った引数をカンマで分割して配列に格納する
  2. 配列の要素を右の列が前になるように並び替え(Linqを使用)
  3. [繰り返し (コレクションの各要素)]内で、配列に格納した列を繰り返し削除

(引数)
DeleteColumn_5.jpg

(フロー)
DeleteColumn_7.jpg

(実行結果)
DeleteColumn_8.jpg

Linqを用いた並び替えについて
改行をなくしたコードは下記の通り。

Linqによる並び替え
削除列配列.OrderByDescending(Function(n) n.Length).ThenByDescending(Function(n) n).ToArray

まずは、OrderByDescendingで文字数が多い要素ほど前に来るように並び替えを行っています。
これは、ExcelにおいてZ列以降はAA,AB,AC,…と続くので、これらの要素をA~Zよりも前に持ってくるためです。
その後にThenByDescendingを使って、文字列降順での並び替えを実行しています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?