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

さて、前回からExcelファイルの整形処理自動化を進めていますが、前回は下表のNo.2までの作業が完了したのでした。

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形式で保存して閉じる レコーディング機能を使う

それでは残りのNo.3以降について説明していきます。

<スポンサーリンク>

整形操作の自動化(続き)

3.選択された各セルの幅を広げる

前回までの操作で、A~C列が選択された状態になっています。ここでExcelのショートカットを使って、列の幅を整えてみましょう。まずは、列の幅を指定するためのプロパティを表示しなければなりません。

ここでは、「Altキー」→「h」→「o」→「w」を順に押すというショートカットキーを使います。

なお、こういった「Altキー」から始まるショートカットはあまり使ったことのない方の方が多いかもしれません。イメージをつかんで頂くために、試しにやってみたいと思います。

まず、Excelを開いて「Altキー」を押すと、メニューバーにアルファベットが表示されます。ここに書かれているアルファベットを押すと、該当するメニューが開きます。試しに「h」を押して、「ホーム」メニューを開いてみましょう。

すると「ホーム」メニューが選択され、その中のメニューがさらにアルファベットで指定できるようになります。次に「o」を押して、「セルの書式」メニューを開いてみます。

ご覧の通り、「セルの書式」メニューが開き、その中の項目もさらにアルファベットで指定できるようですね。ここで「w」を押して、「列の幅」プロパティを表示してみます。

ご覧の通り、列幅を指定するプロパティが開きました。

さて、問題はこれら操作をどのようにUiPathにやらせるか、ですが、前回紹介した「Send Hotkey」Activityを使うと簡単に行うことができます。

まずはUiPathウインドウの中央の領域に「Send Hotkey」Activityをドラッグ&ドロップして下さい。さらにその中の「Alt」にチェックを入れ、「Key」には”how”と入力します。これで、上記一連の流れをUiPathに実行させることができます。

ここまでの処理をUiPathで実行すると、Excelの画面上はどのようになっているかというと、列幅のプロパティが開いており、かつ、列幅欄にフォーカスが当たっている状態、つまり、直接列幅を入力できる状態になっています。

ここで入力操作をUiPathにやらせるためのActivityが「Type into」というものです。

さっそく、UiPathウインドウ右側のActivitiesペインから「Type into」を検索し、中央の領域にドラッグ&ドロップしましょう。

ここでは、A~C列のサイズをすべて”40″にするという想定で、ボックスには”40″と入力します。

最後に列幅プロパティ上の「OK」ボタンを押すために、「Send Hotkey」を使って”enter”をUiPathに送るようにします。あ、下の図の”enter”ですが、単純な文字列ではなく、SpecialKeyであることをUiPathに教えるため、手入力ではなくプルダウンから選択して下さいね。

ここまでで、A~C列の幅サイズを”40″にするという自動化が完了しました。

4.各セルに対して、「全体を折り返して表示」を指定する

この処理については、使うExcelショートカットキーが異なるだけで、上の操作とほとんど同様です。

ショートカットは、「Altキー」→「h」→「w」です。同様に、Send Hotkeyを利用しましょう。

5.各セルを上揃えにする

上と同様です。今回使うショートカットは「Altキー」→「h」→「at」です。

6.タイトルを太字にする

これも「Send Hotkey」を使いましょう。

Excel上の操作は以下3ステップですが、これをHotkeyとしてUiPathに送るだけです。

  • もともとセルがA1にフォーカスされていたことを利用して、上矢印キーを押してA1セルのみを選択する
  • 「Shiftキー + スペースキー」で1行目全体を選択する
  • 「Ctrlキー + b」で選択されている1行目全体を太字にする

「Send Hotkey」ボックスが3つ追加されることになります。

2つ目のボックスの「Key」欄には、見えないですが半角スペースが入っていること、また、各プロパティの「SpecialKey」が正しく設定されていることを念のために確認しておいて下さい。

7.ファイルをxlsx形式で保存して閉じる

さて、一通りの整形処理が終わったところで、最後にcsv形式であったファイルをExcel形式(拡張子 ” .xlsx “)で保存します。これには、UiPathのレコーディング機能を使います。

まずはCSVファイルを開いておきましょう。消してしまった方は、ここまでの自動化処理を実行すれば、CSVファイルが作成されますのでご安心下さい。

なお、前回の記事でも書かせて頂きましたが、ここでも、CSVファイルを開いたら、Excelウインドウは最大化していない状態で操作を先に進めて下さい

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

次に、UiPathウインドウ上部の「Recording」ボタンを押し、表示される一覧から「Basic」をクリックします。

すると「Basic Recording」ウインドウが表示されます。ここで「Record」ボタンを押すことにより、その後の操作が自動化処理としてUiPathに記録されます。

「Record」ボタンを押すことにより、任意の場所を選択できるモードに入りますので、Excelファイル上のメニューバーより「ファイル」にカーソルを当て、クリックします。

次に表示される画面では「名前を付けて保存」にカーソルを当ててクリックします。

ここで、人によっては「Use Anchor」というタイトルのポップアップが出ることがあります。これは、「今クリックした箇所がExcelのウインドウサイズや位置によってはうまく動作しない可能性があるため、他の固定的な箇所(Anchorと言います)を設定して、そこからの相対的な位置関係でクリック箇所を指定するのはどうか」というUiPathからの提案です。

しかしながら、今回のケースではAnchorを設定しなくても正しく稼働しますので、「No」ボタンを押して先に進めます。なお、今回のレコーディングの中で複数回このポップアップが表示される場合がありますが、すべて「No」で進めて問題ありません。

さて、Excel上では、ファイル名等を指定する画面が表示されているはずです。

ここでやりたいことは、ファイル名を指定することですが、現状の自動レコーディングモードではそれができないため、一旦このモードから抜けます。抜けるためには「Escキー」を押します。

すると、再度「Basic Recording」ウインドウが表示されます。Excelにファイル名を入力するため、ここでは「Type」ボタンを押します。

再びExcel画面に戻りますので、ファイル名を入力する欄にカーソルを合わせクリックします。

そして表示されるポップアップの「Type the desired value」の下に、ファイル名を入力します。ここでは”Google検索結果.xlsx”というファイル名にしました。

さらに今回、ファイル名入力欄にはもともと、”Google検索結果.csv”というファイル名が入っていますが、これを消した上で新しいファイル名を入力するようにしたいですね。そのために、ポップアップ下部の「Empty field」にチェックを入れます。

ここまで終わりましたら、Enterキーを押して下さい。

ここで再び「Basic Recording」ウインドウが表示されますので、「Record」ボタンを押して手動Recordingを続けます。

続いてやりたいことは、ファイル形式としてxlsxを選択して保存することです。手順はこれまでと全く同様で、実際にExcel上で操作を行うだけです。以下にスクリーンショットを添付しますので、これを参考に同様の作業を行ってください。

ここまでの作業で、ファイルをxlsx形式で保存するところまでの自動化が完了しました。あとはファイルを閉じるだけですね。

一旦「Escキー」を押して手動レコーディングモードから抜けて下さい。そして、Excel上の「×」ボタンをクリックしてファイルを閉じるという操作を自動化します。

表示されている「Basic Recording」ウインドウにて、「Click」ボタンを押します。

続いてExcelウインドウ右上の「×」ボタンをクリックします。

再度「Basic Recording」ウインドウが表示されます。「Save & Exit」ボタンを押して、これまでの操作を保存しましょう。

すると、今まで行ってきた操作が以下のようにUiPathに記録されているはずです。少し長いですが、これでファイル整形から保存、クローズまでの処理が自動化されました。

テスト実行

それではここで、これまで組み立ててきた自動化処理が正しく動くか確認するため、「Run」ボタンを押して実行してみましょう。

うまく動くとプロジェクトフォルダの中にはcsv形式のファイルに加えてExcel形式のファイルも保存されているはずです。

では実際にファイルを開いて中身を見てみましょう。意図したとおりにファイル内容は整形されていますでしょうか。

終わりに

これまでの作業により、Googleを開き、指定したキーワードによる検索結果を、整形されたExcel形式でアウトプットするといった一連の作業が自動化できました。あとはこの成果物を上司に提出するだけですね。

と言いたいところですが、実はこれまで作成した自動化プログラムは1つ致命的な問題を抱えています。それは「Excelウインドウが最大化された状態でプログラムを走らせると、処理が止まってしまう」という点です。

この問題を解決するため、次回はUiPathの重要概念である「Selector」について紹介した上で、この問題を解消したいと思います。