StudioXのアクティビティ

UiPath StudioXのExcelアクティビティ【範囲 - 編集】

2021/06/07

StudioXには、Excelの標準機能と同等の機能を持つアクティビティが豊富に用意されています。

中でも、行列の範囲を編集するアクティビティは高機能なだけに、その分扱い方が複雑かもしれません。

また、対象が範囲・シートなのか、テーブルなのかによっても動きが変わってきますので、その点について細かく説明をまとめました。

この記事では、以下のアクティビティについて解説します。

範囲編集のアクティビティ

  • 範囲を書き込み
  • データ テーブルをExcelに書き込み
  • 値を検索/置換
  • シート/範囲/表をクリア
  • 範囲をコピー/貼り付け
  • 範囲をフィル
  • テキストを列に分割
記事編集時のStudioX - ver2021.10.5

 

範囲を書き込み

表、範囲、またはシート内のデータをコピーし、別の指定した表、範囲、またはシート内の既存のデータの後に貼り付けます。(ガイドはこちら)

指定した範囲(追加する範囲)を、指定した範囲(次の範囲の後に追加)の下に貼り付けます。

ここでは、以下の項目について解説します。

  • 追加するExcel範囲
  • 次の範囲の後に追加
  • コピーする内容
  • ヘッダーを除外
  • 行/列の入れ替え
  • 開始列

追加するExcel範囲

データのコピー元となる範囲やテーブル、シートを指定します。

シートを指定する場合、範囲やテーブルが1行目から値が入力されている必要があります。

次の範囲の後に追加

データを追加する先を指定してください。

範囲を指定した、その下の行からデータが追加されます。

この時、範囲を表の途中までに指定した場合、それ以下の値は上書きされます。

コピーする内容

貼り付けるときに、書式含めて全部貼り付けるのか、値のみなのか、数式のみなのか、あるいは書式なのかを指定します。

Excelのコピー&ペーストするときにも同じように選択できますよね。

これと同じだと考えると分かりやすいでしょう。

Excelの右クリックメニュー

項目 説明
ALL 値や数式、書式を貼り付けます。
▽Excelのアイコンだとこちら
Values 値のみ(数式は値に変換)貼り付けます。
▽Excelのアイコンだとこちら
Formulas 値や数式を貼り付けます。
▽Excelのアイコンだとこちら
Formats 書式のみ貼り付けます。
▽Excelのアイコンだとこちら

ヘッダーを除外

[追加するExcel範囲]で指定した範囲の先頭行が項目名であれば、チェックONにしてください。

チェックON チェックOFF

行/列の入れ替え

貼り付ける際に、行と列を入れ替えます。

Excelのアイコンで言うと、こちらですね。

開始列

[追加するExcel範囲]と[次の範囲の後に追加]の列数が異なる場合に、追加先の列番号を指定します。

[次の範囲の後に追加]にテーブルを指定した場合は、項目名がメニューに表示されます。

例えば、以下のような、2つの表があったとしましょう。

[追加するExcel範囲] [次の範囲の後に追加]
A1:D4 A1:E4

[追加する範囲]には、id列が足りませんね。

このような場合、[開始行]に"B"を指定すると、B列から値が貼り付けられ、列を揃えることが出来ます。

データテーブルをExcelに書き込み

[範囲に書き込み] アクティビティは、外部のデータ テーブル ソースに含まれるデータを Excel に書き込むために使用します。(ガイドはこちら)

ツールチップ(上記の文章)に古いバージョンでの呼び名が残っていますが、[範囲に書き込み]=[データテーブルをExcelに書き込み]のことです。

データテーブルの値を、指定した範囲へ書き込みます。

[範囲を書き込み]と動作は似ていますが、このアクティビティでの元データは、データテーブルとなります。

ここでは、以下の項目について解説します。

  • 書き込む内容
  • ターゲット
  • 追加
  • ヘッダーを除外
  • 空のソースを無視

書き込む内容

書き込むデータテーブルを指定します。

Excelのテーブルを指定する場合は、[+]メニューより指定すればOKです。

これは、Excelのテーブルがデータテーブルとして扱われるためです。

テーブルはOKですが、範囲(またはシート)を指定すると、想定した動作になりません。

[書き込む内容]に、シートや範囲を直接指定しないよう注意してください。

データテーブルについては、こちらを参照ください。

データテーブルとは

では、範囲やシートを扱いたい場合は、どうすればいいのでしょうか。

答えは、[範囲を読み込み]アクションを使ってデータテーブル化すれば、正しく動作します。

範囲(シート)を指定して書き込みたい場合、素直に[範囲を書き込み]を使う方が正解ですね。
おぐし

[ターゲット]と[追加]

[ターゲット]は、データの貼り付ける先を、シート、範囲、テーブルのいずれかより指定します。

また、[追加]のチェックON/OFFで、貼り付ける先が異なります。

例えば、ターゲットに”A1:B3"を指定した場合を考えてみましょう。

[追加]がチェックOFFの場合、A1から値が書き込まれます。

[追加]がチェックONの場合は、A4から書き込まれます。

ターゲットで"テーブル"を指定し、[追加]をチェックOFFにした場合、項目行は上書きされず保持されます。

公式のガイドでは「データは対象範囲内の最初の空白行から追加されます。」と記述されていますが、実際の動作は違うようです。

ヘッダーを除外

チェックONにすると、データ部分のみを[ターゲット]で指定した場所に書き込みます。

なお、[ターゲット]にテーブルを指定、[ヘッダーを除外]をチェックONとした場合、[ターゲット]側の項目名は保持されます。

空のソースを無視

[書き込む内容]に指定したデータテーブルのデータが0件の場合、チェックOFFだと処理がエラーになり中断します。

チェックONにすると、データが0件であってもエラーにならず、処理を継続します。

チェックONの場合、項目行のみ書き込まれることになるので注意しましょう。

値を検索/置換

指定した範囲で特定の値を検索します。選択した操作に応じて、セルの場所を返すか、値を別の指定した値に置換します。(ガイドはこちら)

Excelの[検索と置換]と同等の機能ですね。

ここでは、以下の項目について解説します。

  • 操作
  • 検索する場所
  • 検索する値
  • 次で置換
  • 見つかった場所
  • セル内容が完全に同一であるものを検索する
  • 大文字/小文字を区別
  • 検索対象

操作

"検索"、"置換"、"すべて置換"の中から選択します。

Excelの[検索と置換]と違うのは、検索方向は"行"のみとなる部分です。

例えば以下の表があり、"●"を検索した場合、上の行から順に検索していくので、ヒットするセルは"C1"になります。

検索する場所

範囲やシートを指定します。

ブック全体を対象としたい場合は、[繰り返し(Excelの各シート)]アクションと組み合わせれば可能ですね。

検索する値

[検索する値]は、ワイルドカードによる値の指定が可能です。

ワイルドカードには2種類あり、"*"は0文字以上の任意の文字、"?"は1文字の任意の文字を表します。

「ワイルドカードって何?」という人は、こちらを参照ください。

ワイルドカードの使い方

オプションで、[セルの内容が完全に一致するものを検索する]や、[大文字/小文字を区別]を利用することで、より検索条件が絞れます。

次で置換

[操作]が"置換"、または"すべて置換"の場合に適用される項目です。

置換後のテキストを指定します。

見つかった場所

[操作]が"検索"、または"置換"の場合に適用される項目です。

検索の結果で見つけた場所を、"C1"のようなセルアドレスで値を返します。

完全に一致する単語のみ

チェックONにすると、セル内のテキストが完全に一致する場合にのみ検索対象となります。

大文字/小文字を区別

チェックONにすると、英語の大文字小文字を区別して検索します。

なお、半角と全角は、別の文字列として認識します。

パターンを一覧化しましたので、確認してみましょう。

チェックONとOFFで、検索対象となるものを赤字にしています。

検索するテキスト チェックON チェックOFF
abc
(半角小文字)
abc
ABC
abc
ABC
abc
ABC
abc
ABC
ABC
(半角大文字)
abc
ABC
abc
ABC
abc
ABC
abc
ABC
abc
(全角小文字)
abc
ABC

abc
ABC
abc
ABC

abc
ABC
ABC
(全角大文字)
abc
ABC
abc

ABC
abc
ABC

abc
ABC

Excelの置換では、「半角と全角は同じ文字として扱われる」という点が、StudioXと異なります。

検索対象

値を検索するか、数式を検索するかを指定します。

  • Values・・・が検索対象となります。
  • Formulas・・・数式が検索対象となります。

例えば、検索の値を"A2"とした場合、検索対象を切り替えるとどうなるでしょうか。

以下の表の場合、検索対象がValuesであれば、セルアドレス"A3"が返されます。

検索対象がFormulasであれば、セルアドレス"B2"が返されます。

シート/範囲/表をクリア

スプレッドシート、範囲、または表のデータをクリアします。(ガイドはこちら)

指定した範囲のデータをクリアします。

ここでは、[クリアする範囲]と[先頭行をヘッダーとする]について解説します。

クリアする範囲

範囲やテーブル、シートを指定します。

シートを指定した場合は、範囲やテーブルを自動的に検索します。

このとき、テーブル化されていない範囲の場合、1行目が項目名であることが条件です。

先頭行をヘッダーとする

チェックONにすると、データを削除する対象から先頭行が除外されます。

範囲と先頭行の設定によるクリアの違い

クリアする内容は、基本的には値と書式両方がクリアされます。

ですが、[クリアする範囲]と[先頭行をヘッダーとする]の指定の違いによって動作が変わりますので、簡単に整理しておきましょう。

表の種類 先頭行のON/OFF
範囲

ON…先頭行のみ残り、値の部分は書式含め削除されます。

OFF…範囲全てが削除されます。

テーブル

ON…値が削除されますが、テーブルの範囲はそのままです。

OFF…テーブルすべてが削除されます。

範囲をコピー/貼り付け

範囲またはシートをコピーして、現在のブックの別の場所、または他のブックに任意で貼り付けます。(ガイドはこちら)

指定した範囲をコピーし、貼り付けます。

ここでは、以下の項目について解説します。

  • ソース
  • ターゲット
  • コピーする内容
  • ソースのヘッダーを除外
  • 行/列の入れ替え

ソース

コピーする範囲やテーブル、シートを指定します。

ターゲット

貼り付ける先を指定します。

範囲やテーブル、シートを指定できます。

指定した範囲の左上が、ペーストする始点となります。

例えば、"A3:B4"をターゲットとした場合は、"A3"が始点ですね。

もちろん、1つのセル(A3のみ)を指定しても結果は同じです。

コピーする内容

貼り付けるときに、書式含めて全部貼り付けるのか、値のみなのか、数式のみなのか、あるいは書式なのかを指定します。

Excelのコピー&ペーストするときにも同じように選択できますよね。

これと同じだと考えると分かりやすいでしょう。

Excelの右クリックメニュー

項目 説明
ALL 値や数式、書式を貼り付けます。
▽Excelのアイコンだとこちら
Values 値のみ(数式は値に変換)貼り付けます。
▽Excelのアイコンだとこちら
Formulas 値や数式を貼り付けます。
▽Excelのアイコンだとこちら
Formats 書式のみ貼り付けます。
▽Excelのアイコンだとこちら

ヘッダーを除外

[ソース]で指定した範囲の先頭行が項目名であれば、チェックONにしてください。

チェックON チェックOFF
[ソース]の対象がテーブルの場合、チェックのON/OFFに関わらず、項目行を除外して貼り付けられます。
おぐし

行/列の入れ替え

貼り付ける際に、行と列を入れ替えます。

Excelのアイコンで言うと、こちらですね。

範囲をフィル

範囲内のすべてのセルに式または値を入力します。(ガイドはこちら)

範囲に、指定した値や数式を書き込みます。

書き込む場所

範囲、またはテーブルを指定します。

テーブルを指定した場合は、項目行(ヘッダー)は除外されます。

書き込む内容

書き込む値を指定します。

値でも数式でも、どちらでも指定できます。

サンプルはこちら。

アクティビティ 結果

※数式表示にしています。

テキストを列に分割

セル、範囲、または表内のテキストを、別の列に分割します。(ガイドはこちら)

1つのセル内にある文字列を、複数のセルに分割する機能です。

Excelの[区切り位置]と、ほぼ同等の機能ですね。

例えば、セル"A1"に、"a,b,c"のようにカンマで区切られた文字列がある場合、3列の文字に分割されます。

ここでは、以下の項目について解説します。

  • ソース
  • ターゲット
  • データ型(区切り文字)
    • 区切り文字
    • 連続の区切り文字を1つとして扱う
    • テキスト修飾子
  • データ型(固定幅)
    • 列ごとの文字数

ソース

分割したい文字列が含まれている範囲を指定します。
対象とする範囲は、1列でないといけません。

ターゲット

分割後の値を書き込む範囲を指定します。

範囲やテーブル、シートを指定できますが、いずれも左上のセルが起点となって値が書き込まれます。

データ型

"区切り文字"と"固定幅"から選択できます。

[データ型]の選択で、適用される項目が変化します。

区切り文字

指定された文字で区切ることができる文字列です。

例えば以下の文字列は、コンマで区切って4×3の表に分割されます。

小文字,大文字,数値
abc,OPQ,123
def,RST,456
ghi,UVW,789

コンマ以外にも、区切り記号としてよく使用される記号は、あらかじめ用意されています。

注意点としては、Excelの[区切り位置]と違い、区切った後の文字の書式は指定できません。

"0123"のような値があった場合、0が消えてしまうので注意してください。
おぐし
区切り文字

あらかじめ、よく使われる区切り記号については、チェックボックスが用意されています。

  • タブ
  • セミコロン
  • コンマ
  • 空白
  • 改行

上記にない文字も、"その他"をチェックONすることで、自由に文字を設定できます。

テキスト修飾子

Excelの"文字列の引用符"に該当するもので、"なし"、"二重引用符"(”)、"一重引用符"(’)から選択ができます。

引用符とは、「ここからここまでが一区切りであること」を明確にするためのものです。

例えば、文字列の中に区切り文字(コンマ)が含まれている場合、正しく分割できません。

FullName,氏名
Shoji, Ogushi,小串 将司
Taro, Yamada,山田 太郎

これを分割すると、英語部分のコンマまで分割されてしまうからです。

このとき、文字列が引用符で囲まれていて、テキスト修飾子を指定すれば、正しく区切られます。

"FullName","氏名"
"Shoji, Ogushi","小串 将司"
"Taro, Yamada","山田 太郎"

固定幅

文字列の長さで区切りを分割します。

以下の文字列は、13ずつに区切ることで綺麗に分割されます。

(下段の数値は目盛のために表記しています)

Excelとは異なり、文字の長さは全て同じでなければなりません。

つまり、「1列目は20、2列目は10」のように、長さが変動する場合には対応できません。

列ごとの文字数

1列の文字数を指定します。

上記文字列を、13文字で区切った場合、以下のように分割されました。

まとめ

解説をまとめてみて思うのですが、今回のアクティビティは複雑なものが多かったですね。

ですが、ややこしいと思っても、実際に使ってみると案外すんなり理解出来てしまえるものではないでしょうか。

まとめます。

まとめ

  • [範囲を書き込み]はExcel上のデータ、[データテーブルをExcelに書き込み]はデータテーブルがデータ元となる。
  • [値を検索/置換]ではワイルドカードが使用可能。

この記事で、何か1つでも新しい発見が得られたのなら、僕もうれしいです。

-StudioXのアクティビティ

© 2023 おぐしログのRPA入門