【Automation Anywhere】いわゆる「方眼紙エクセル」から値を取得する２つの方法（Automation360）


#方眼紙エクセルって何？

これが正式な呼び方かはわからないのですが、下記の図のように、Excelを方眼紙のようなマス目状にして、セル結合を駆使してフォーマット作りました！　というタイプのファイルを、ここでは「方眼紙エクセル」と呼びます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/970a9e6a-7379-0844-3ff8-f58675d0a50d.png)

特にRPAでこのタイプのExcelを扱う場合、「フォーマット変更でセルのアドレスが変わってしまい、Botが作り直しに……」みたいな経験をしている人も多いはず。

今日はそんな人たちに向けて、Automation Anywhere の Automation360で方眼紙エクセルを扱う２つの方法をご紹介したいと思います。

#Automation360で方眼紙エクセルから値を取得する方法

それでは、Automation 360を使って、方眼紙エクセルから値を取得する方法を具体的に見ていきましょう。

最初に出したExcelの申込書で、「自動　太郎」という名前が入った結合セルの値を取り出す方法を解説していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/e1ea9226-2906-37c2-5393-d06c856a63d0.png)

Automation360では、特定のセルから値を取り出すアクションとして、「１つのセルを取得」というアクションがあります。
このアクションは、Excelの基本操作・高度な操作のどちらにも入っています。（Excelの基本操作・高度な操作の違いについては、後日記事を書きます。）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/2d9b27f1-bf79-87a8-b1e0-f8baafa569e0.png)

「１つのセルを取得」のアクションには、セルのアドレスを指定する欄があります。
ここのアドレスを適切に指定することで、ほしい値を取得します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/27287755-613c-fa19-2404-93fdfd27fc06.png)

この指定のやりかたには、２つのやりかたがあります。

## 方法１：セルのアドレスを指定する（基本、高度共通）

方法のひとつめは、セルのアドレス（A1,B2等）を指定する方法です。

方眼紙エクセルのように結合されたセルの場合、**最も左上のセルのアドレスを指定する**必要があります。

「自動　太郎」という名前が入った結合セルの中で、最も左上のアドレスは「P6」です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/0b920f7d-9b65-74ac-a306-8c522fc160a8.png)

なので、セルの指定の欄には「P6」と指定します。
入力は半角で行う必要があります！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/3bea1c71-51c0-d255-49fc-f18cec889a0a.png)

この状態でBotを実行すると、みごとに名前が取得できました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/41a25800-5565-5bfa-152b-bf2183989423.png)

### 方法１の補足：左上以外のセルを指定するとどうなる？

今回の例の場合で、「P7」や「Q6」のように、「結合セルの範囲ではあるが最も左上ではない」セルを指定すると、エラーにはなりませんが、値が空白で返ってきてしまいます。

結合セルをアドレスで指定する場合は、**最も左上のアドレスを指定する** ことが必要です。

### 方法１の欠点：セルのアドレスが変わると、Botが正しく動かない

方法１の欠点としては、セルのアドレスが変わると、Botが正しく動かないということです。

特に方眼紙エクセルの場合、「ちょっとここの幅を広げたいなー」といったフォーマットの変更を、列や行の追加によって行う場合が多々あり、これによって、Botで扱いたい値のアドレスが変わり、正しく動かない！　ということが頻発しがちです。

具体的には以下のような状況です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/930e6610-612d-e5ee-6870-ad357570e703.png)

この欠点を補い、方眼紙エクセルをより安定的に扱うには、方法２がおすすめです。

## 方法２：セルの名前で値を取得する（高度のみ）

セルのアドレスが変わっても、安定的に値を取り出せる方法として、「セルの名前で値を取得する」という方法があります。

この方法を使うためには、下準備として、Excelのフォーマットの中のBotで扱いたい項目に、セルの名前をつけておく必要があります。

セルに名前をつける方法は、以下のページなどを参考にしてください。

https://getnavi.jp/business/79018/

こうして名前をつけてあげることで、**RPA側でもセルの名前によって値を取得することが可能**になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/17c6fc87-5c65-3b45-d808-3c2e917573b2.png)

名前を指定する方法は簡単。
「Excelの高度な操作」で、方法１と同じ「１つのセルを取得」のアクションの「セルの指定」欄に、ほしいセルの名前を指定するだけです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/92db49cc-c32d-467d-94f2-80723693fdd2.png)

この方法を使えば、フォーマット変更などでセルのアドレスが変わっても、名前を根拠に安定して動くBotが作れます。

### 方法２の注意点１：「Excelの基本操作」では使えない（高度な操作でのみ使用可能）

方法２の注意点その１は、これは「Excelの高度な操作」でのみ可能な方法であって、「Excelの基本操作」では使えないということです。

Excelの基本操作でセルの名前を指定しようとすると、チェックに引っかかってエラーになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/587845/95379e0c-c2eb-6890-9698-73480dbeccb8.png)

### 方法２の注意点２：名前がつけられるExcelにしか対応できない

当たり前といえば当たり前ですが、方法２は名前付きのExcelに対してしか使えません。

もともとのフォーマットを自分たちがいじることができ、それに名前をつけるという前提が成り立たないと、方法２は使えないですね。

そして、そもそも自分たちがフォーマットを自由に変えたりできる環境にあるなら、「なんでそもそも方眼紙エクセルなんか使ってるの？」「それ、Microsoft Forms や Google Form に入力してもらうんじゃだめ？」という話にもなってきます。

が、それぞれの業務にそれぞれの事情があると思いますので、この方法が役立ちそうな場面があるならぜひ使ってみてください。

#以上！

いかがでしたか？

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

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

検索用：方眼Excel、方眼エクセル、方眼紙Excel