【初心者向け】UiPathによるRPA実装14 Excelファイルの整形処理自動化その1

前回はGoogle検索結果をCSVファイルに落とし込むところまでの自動化を行いました。しかしながらExcelで開いてみると、見た目が酷いものでしたね。

そこで今回は、Excel上の整形処理を自動化していきたいと思います。なお、整形処理全体には結構な量の説明が必要になりますので、2回に分けて記事を書きたいと思います。

<スポンサーリンク>

整形手順の整理

さて、一口に「整形」と言っても、どういった形にしたいかを決めないことには、整形手順を決めることはできません。

本記事では、最終的に以下のような見た目になるよう、整形処理を進めて行きたいと思います。

人によって要求レベルは異なるとは思いますが、まぁ、必要最低限の見た目は担保できているのではないでしょうか。

ということで、これをゴールとして手順を整理してみます。大体、以下のようなところでしょうか。

No. 操作
1 csvファイルをExcelで開く
2 A~C列を選択する
3 選択された各セルの幅を広げる
4 各セルに対して、「全体を折り返して表示」を指定する
5 各セルの文字を上揃えにする
6 タイトルを太字にする
7 ファイルをxlsx形式で保存して閉じる

では、これら操作を徐々に自動化していきましょう。なお、今回の記事ではNo.2までの操作を説明し、それ以降は次回の記事に譲ることにします。

整形操作の自動化

まずは、上記の操作をUiPathでどのように実現するか、簡単にまとめておきます。なお、Excel操作は、Excelのショートカットを利用すると簡単に自動化できる場合があります。そのため、以下の手順ではショートカットをふんだんに使用していますが、後ほど内容は説明しますので、どうかご心配なさらず。

その一方で、なるべく多くのUiPath操作方法を紹介するという意味で、レコーディング機能を使った自動化も適宜含めています。

No. 操作 UiPath上での実現方法
1 csvファイルをExcelで開く レコーディング機能を使う
2 A~C列を選択する 「Send Hotkey」Activityを使って、列選択のためのExcelショートカットキーをUiPathに送る
3 選択された各セルの幅を広げる 「Send Hotkey」Activityを使って、セルの幅を設定するプロパティを開くExcelショートカットキーをUiPathに送る
さらに、「Type into」Activityを使って、幅のサイズをUiPathに送る
4 各セルに対して、「全体を折り返して表示」を指定する 「Send Hotkey」Activityを使って、選択されている列のセル全てに対して、「全体を折り返して表示」を指定するショートカットキーをUiPathに送る
5 各セルを上揃えにする 同様に「Send Hotkey」Activityにより専用のショートカットキーを送る
6 タイトルを太字にする これも同様に「Send Hotkey」Activityを利用する
7 ファイルをxlsx形式で保存して閉じる レコーディング機能を使う

ということで、使う機能は、「レコーディング機能」、「Send Hotkey」Activity、「Type into」Activityの3つですね。

では、1つずつ説明していきます。

1.csvファイルをExcelで開く

まずは、前回作成した”Google検索結果.csv”をExcelで開いておきましょう。ファイルを消してしまった方は、前回までに作った自動化プログラムを走らせることで、ファイルが生成されます。

なお、Excelファイルを開いたら、Excelウインドウは最大化していない状態にしておいて下さい。UiPathには「Selector」という重要な概念があるのですが、今後の記事でそれを説明するための前準備と捉えて下さい。今時点では詳細を意識する必要はありません。

その状態で、UiPathウインドウ上部の「Recording」ボタンをクリックし、表示される一覧から「Basic」を選択します。

その直後に表示される「Basic Recording」ウインドウにて、「Start App」ボタンを押します。

すると、デスクトップの任意の場所を選択できるモードに入りますので、開かれているExcelの任意の場所をクリックします。クリックすると、以下のポップアップが表示されると思います。

このポップアップの上段にはExcelの実行プログラムの場所があらかじめ入っており、手を加える必要はありません。一方下段はブランクになっていますが、ここに開きたいファイルである「Google検索結果.csv」と入力します。入力が終わったら「OK」ボタンを押して下さい。

そうしますと、再度「Basic Recording」ウインドウが表示されますので、「Save & Exit」ボタンを押します。

これにより、以下のように、CSVファイルを追加する処理が追加されました。

2.A~C列を選択する

ファイルを開く処理を自動化できたところで、ファイルの中身の操作自動化に移りましょう。まずは、操作対象となるA~C列を選択することから始めます。

ところで、今回操作のために、ショートカットをふんだんに使用すると説明しましたが、そのためにはctrlキーやaltキーなどを使用する必要があります。これらのキーをUiPathでは「Hotkey」と呼びますが、これに対して専用のActivityが用意されています。それが「Send Hotkey」と呼ばれるものです。

さっそく、UiPathウインドウ右側のActivityペインより「Send Hotkey」Activityを検索し、先ほど追加されたボックスの下にドラッグ&ドロップしましょう。

Activity追加後、このActivityにより操作する対象となるウインドウ、つまり、今回の場合はExcelファイルのウインドウにフォーカスを当てる必要があります。そのためには、「Send Hotkey」Activity上の「Indicate on screen」をクリックします。

再びデスクトップの任意の場所を選択できるモードに入りますので、カーソルをExcelウインドウ内部に当て、Excel内部が黄色い枠で囲われたところでクリックします。

すると、「Send Hotkey」Activityの中に、Excel画面のサムネイルが表示されるようになりました。これで、Excelウインドウへのフォーカス処理は完了です。

続いて、Hotkeyの設定に移ります。

まず前提として、新規に作成されたcsvファイルをExcelで開いたとき、デフォルトではA1セルが選択されています。そして、Excelでは、「Ctrlキー + Spaceキー」を同時押しすることにより、選択されているセルを含む列全体を選択することができます。

今回、まずはA列全体を選択したいので、UiPathには「Ctrlキー + Spaceキーを押す」という情報を与えてやればよいことになります。

それではこの情報をもとに、「Send Hotkey」のボックス内を埋めてみましょう。ボックスの「Ctrl」にチェックを入れるとともに、「Key」の欄に” “(スペース)を入力します。“Space”という文字列を入力するのではなく、半角スペースを単純に入れることに注意してください

なお、ここでもう1点注意点があります。このSend Hotkeyのボックスが選択されている状態で、UiPath右側のPropertiesペインを見ると、「SpecialKey」という項目がありますが、ここにチェックが入っていないことを確認して下さい。ここにチェックが入っていると、「Key」欄に入力した文字列が特殊文字とみなされてしまいます

イメージが沸きづらいと思いますので、1つ例をあげます。例えば「Key」欄に”right”と入力したとします。この時、「SpecialKey」にチェックが入っていなければ、UiPathは文字通り”right”という文字列だと認識しますが、チェックが入っている場合これを「右矢印キー」であると認識します。

Hotkeyを使用する時に意図しない動作をしてしまう場合、ここの指定が間違っている場合が往々にしてありますので、今後もご注意頂ければと思います。

さて、ここまでの操作で、ExcelのA列全体を選択することができるようになりました。引き続き、選択範囲をB, C列に広げます。

ここでは、「Shiftキー + 右矢印キー」で、すでに選択されている列の右隣りも選択範囲に加えられることを利用し、この操作を2回繰り返すことにします。

そのためには、「Send Hotkey」Activityを新たに2つ、先ほど追加したボックスの下に追加します。そして、追加した2つのボックスとも、「Shift」にチェックを入れるとともに、「Key」には右側のプルダウンマークから”right”という文字を選択して下さい。

ここでの注意点は2点あります。

まず、最初にSend Hotkeyを設定したときに行った「Indicate on screen」は設定する必要がないということです。これは、最初の設定時にすでにExcelウインドウにフォーカスが当たっているため、再度フォーカスしなおす必要はないためです。

もう1点は、「Key」に”right”を指定する際、ブルダウンから行うということです。このように操作することにより、UiPathは”right”を単純な文字列ではなく、「右矢印キーである」と認識します

試しに、右側のPropertiesペインを見てみましょう。「SpecialKey」にチェックがついているはずです。

ちなみに、実は「Key」に対して”right”と手入力した上で、「SpecialKey」にチェックを付ける方法でも同じことが実現できます。しかしながら、慣れないうちはプルダウンを使用した方が間違いが無くてよいでしょう。

さて、ここまでの操作で、A~C列を選択するという処理の自動化までが完了しました。

終わりに

今回の作業はうまくできましたでしょうか。

次回はExcel上の整形処理を最後まで行って、Excelファイルとして保存するところまでを自動化したいと思います。