【Automation Anywhere】「テキストを抽出」アクションの使い方 - 文字列操作がいろいろできる！（Automation360）

#はじめに

文字列の操作がうまくなると、RPAを使いこなせる幅がぐんと広がります。

例えば `日付_部門名_社員名.pdf` などのようにネーミングルールの決まったファイルから、日付や社員名などの特定の項目を抽出したい！　といった場合に必要になるのが文字列操作です。

Automation Anywhere の標準アクションには、文字列操作にとても便利な「テキストを抽出」というアクションがあります。

ですが、慣れていないと使い方（特にパラメーター（画面右側）の設定方法）が若干わかりにくいため、この記事でわかりやすく解説します。

#「テキストを抽出」アクションの使い方

## 基本の使い方

「テキストを抽出」アクションは、「文字列」アクションの配下にあります。
まずはアクションを選択し、ドラッグしてフローの中に入れます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/16c158a2-21f9-4612-3260-bfc9fbad5ffc.png)

## パラメータの概要

「テキストを抽出」アクションのパラメータ（画面右側の設定内容）は、大きく３つのパートに分かれています。

まず、一番上の「元の文字列」には、編集前の文字列を設定します。（例：20211225_営業部_大戸芽衣.pdf など）
もちろん変数で指定することも可能です。

一番下の「出力を変数に代入」には、編集後の文字列を格納する変数を指定します。
たとえば社員名を取り出したい場合なら、その社員名を入れておくための変数をここで指定しておくというわけですね。

そして、メインになるのが真ん中の条件設定の部分です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/851a9bf8-78e2-fc79-e285-6cf1f33adf7e.png)

## 抽出条件設定のパラメータ

ここから先は、メインになる条件設定のパラメータの設定方法について解説していきます。

### 以前　／　以前および/または以降　／　以降

この３つのいずれかを選択することで、「どんな条件で文字列を取得するか」を定義します。

#### 「以前および/または以降」の設定方法

３つの中では、「以前および/または以降」が最も実用的でわかりやすいので、ここから解説を始めます。

例えば `20211225_営業部_大戸芽衣.pdf` から、社員名である「大戸芽衣」を取り出したいときは、こんなふうに指定します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/096ed831-274a-e3ce-480d-0eb7e44b7696.png)

実際に動かしてみても、意図どおり「大戸芽衣」がとれていることがわかります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/525c1d45-48c8-c67f-5f04-377b3ad128f6.png)

設定方法の考え方をもう少し噛み砕くと、こんな感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/7922258d-2504-1dab-ec2d-4a4ebf0cf1b4.png)


####　「以前」および「以降」の設定方法

「以前」と「以降」は、少しネーミングがややこしいです。

というのは、「以前」や「以降」と聞くと、「区切り文字以前（または以降）の文字列を**取得する**」みたいにイメージする人がほとんどだと思うんですが、実際の挙動がそれと逆になっているからです。

考え方としては、**「区切り文字以前（または以降）の文字列を除外する（取得ではなく）」と考えた方がわかりやすい**です。

具体例で見てみましょう。

##### 「以前」の条件設定方法

「以前」を選択した際のパラメータの設定方法は、以下のとおりです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/167c9d94-0d90-39e6-4d6d-3c944561c87b.png)


上記の設定で実際に `20211225_営業部_大戸芽衣.pdf`　という文字列を操作してみると、以下のようになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/b01df0d3-cf93-97d8-e986-25a5b62466c3.png)

ええー！　どうしてそうなるのー？！　と頭に「？」が浮かんでいる人のために、考え方の部分をもう少し噛み砕くと、こういうことです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/5b716455-a066-1506-f0f2-dc7fb2af1905.png)

##### 「以降」の条件設定方法

「以前」の考え方が理解できれば、「以降」もすんなり頭に入ると思います。

設定方法はご覧のとおり。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/fce6c766-6143-f652-72b2-844bb517eea2.png)

挙動はこんな感じになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/ee6c9072-6723-f5d2-36ae-e4add8733e87.png)

考え方を噛み砕くと、こんな感じです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/65c7e509-4a92-d0b9-edef-e55b740d7431.png)

## その他のパラメータ

### 一致する結果がない場合は、戻す 

抽出条件のすぐ下にあるこのパラメータも、実務ではよく使うと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/167c5318-f0d3-2492-3caf-6736612b232a.png)

#### いつ使う？

例えば規定のネーミングルールが守られていないファイルなど、あるはずの区切り文字がなく、抽出条件にヒットしない場合などです。
ファイルのネーミングルールは `日付_部門名_社員名.pdf` で提出してね！　と言っておいたのに、ハイフン区切りで提出してくる社員などは必ず一定数いますよね。

そういうデータに当たった場合に、空の文字列を返すのか、元の文字列を返すのかを選べます。

#### どう使い分ける？

ネーミングルールにヒットしていないデータがあった場合に、エラー処理を組み込みたい場合であれば、「空（Null）の文字列」を選んでおくと便利です。
結果が空だったことを条件にしたIF文を組んで、エラー時の処理を組み込むイメージですね。

一方、ファイル名の変更のために文字列操作をしている場合など、「抽出条件がヒットししなければ、ひとまず元のファイル名のままにしておく」という整理ができる業務もあると思います。この場合は、「元の文字列」を選択しておくとよいでしょう。

個人的には、「文字列操作の結果、ファイル名を変更する」などの場合であれば、元も文字列

### 取得する文字列の数 

こちらは「数」と書いてあるのがややこしいのですが、実際には取得する文字列の「長さ」です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/9b63eb18-d49a-6251-bd2c-f29e593b627c.png)

基本的にはデフォルトの「すべて」を選んだままでいいと思います。

「限定」を選ぶ場面があるとすれば、区切り文字の直後に日付や社員番号など、桁数が必ず決まったデータが現れる場合です。
その場合は、「限定」を選択して「8」（日付でYYYYMMDD形式の場合）などを設定することも考えられます。

### スペース・Enterの除外

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/23613a7a-ba53-0270-6685-41d853d56369.png)

こちらはもう、見たまんまですね。スペースやEnterを削除したければ、該当する方にチェックを入れるだけです。

#以上！

いかがでしたか？

今回は「テキストを抽出」アクションの使い方について、詳細を解説しました。

今後もAutomation Anywhere について、初心者にもわかりやすく役に立つ記事を書いていきたいと思います。

わからない点や不明な点、「こんな記事を書いてほしい！」などのリクエストがありましたら、コメントやTwitterなどでお気軽にコメントいただければ幸いです。