Mutable_Yunの業務改善ブログ

業務改善や生産性向上のブログです。自動化の手段として、VBAやRPAの勉強に役立つ解説をしています。

無料で使えるRPA | RPA Express(Workfusion Studio)の使い方② エクセルに書き込む

今回は無料で使えるRPAであるWorkfusion社の"RPA Express"でエクセルのセルに値を書き込む方法を解説します。

新たにブックを生成するのではなく、デスクトップに保存されているエクセルブックを開いて処理するケースを例に解説していきます。

目次

今回やりたいこと

今回やりたいことはRPA Expressを使ってエクセルデータの処理を行うことです。下記のデータを用意しました。売上実績データです。

売上実績データの図
売上実績データ

支店ごとのある日の売上データだと思ってください。C列に販売単価、D列に販売実績が入力されています。F列が空欄なので、ここに売上高を計算して入力したいと思います。売上高は販売単価×販売実績で計算できるので、C列とD列の値を掛け算した値をF列に入力します。

F列にかけ算の値を入れるところまで解説するとすこし長いので、この記事では、ヘッダとしてF1セルに「売上高」と記入する部分について説明します。最終的には繰り返しを使って最終行までかけ算の結果を入力して集計するところまでたどり着くことを目指します。

操作対象のエクセルブックを開く

前回はエクセルのアプリケーションを何も開いていない状態から、新規でブックを作成する方法を勉強しました。今回は、捜査の対象であるブックを開きます。

エクセルブックはデスクトップ上に「売上実績データ.xlsx」という名前で保存されています。

左のほうに表示されているAction LibraryからExcelを選択します。すると、エクセルを操作するためのアクションが一覧で表示されるので、Open spread sheetを選択します*1

アクションライブラリからExcelを選択し、「Open spread sheet」をダブルクリック
アクションライブラリからExcelを選択し、「Open spread sheet」をダブルクリック

「Open spreadsheet」をダブルクリックすると、Actions Flowに「Open Spreadsheet」のアクションが追加されます。これをダブルクリックして下さい。

Open Spreadsheetアクションの中身を設定する画面が右のほうに表示された絵
Open Spreadsheetアクションの中身を設定する画面が右のほうに表示された

File location:の右に開きたいファイルのフルパス*2を記入するところがあります。右の方の「Browse」というボタンを押して開きたいエクセルファイルを選択しましょう。

「あれ?開きたいエクセルファイルがない!」って方はファイルの種類が「.xls」になっているはずなので、ここをクリックして「.xlsx」に変更します。

ファイルの種類を変更する絵
ファイルの種類を変更する

このように、開きたいファイルのパスが入力できればOKです。

パスの記入が完了した状態のOpen Spreadsheetアクションの絵
パスの記入が完了した状態のOpen Spreadsheetアクション
これで、エクセルを開くことができます。

一応動作確認しておきましょう。今は、関係ないエクセルブックは閉じている状態ですね?

それでは、上の方の「Play recording」を押します。エラーが出なければOKです。でもエクセルを開いたようには見えないですよね。そうです。今回はエクセルのアプリケーションを表示させずに内部的に開きます。バックグラウンドではちゃんと開いています。RPA Expressの仕様的に、最後のアクションが終わった時に閉じるようになっています。内部的に開きっぱなしにはならないのでご安心ください*3

エクセルのセルに値を書き込む:「売上高」の列を作成する

いよいよエクセルの中を操作していきます。今回やりたいことで触れたエクセルのイメージを再掲しておきます。

再掲 今回やりたいことの図。F列に売上を記入する
再掲 今回やりたいことの図。F列に売上を記入する

まずは1行目のヘッダ部分に「売上高」と記入して売上高の列を作成しましょう。Action Libraryから「Set cell value」をダブルクリックします。

Action Libraryから Set cell value を選択する絵
Action Libraryから Set cell value を選択する

すると、Action Flow内のOpen Spreadsheetアクションの下にSet Cell Valueアクションが追加されます。よく見ると少し段落のように下がった位置にあります。これを「インデント」と呼びます。インデントする事によって、インデントしている間はこのエクセルを操作しているのだな、と分かります。

このようにひとかたまりの作業をインデントしておく作業をRPA Expressさんが自動でやってくれているわけですね。

画面の右の方に、「どのように」を記述する画面が表示されるので、埋めていきます。どこのセルに、何を書き込むかです。

Set Cell Valueアクションに対して「どのように」を指定する絵
Set Cell Valueアクションに対して「どのように」を指定する

変数を用意する

ここで1つ変数を用意します。変数とは箱のようなもので、この中に文字や数字を入れることができます。今は、F1セルに「売上高」と言う文字を入れようとしています。そのために、変数を用意して、そこに「売上高」という文字を入れて、Set Cell Valueアクションに渡す作戦です*4

まず、変数を用意する画面を出します。Window⇒Show View⇒Recorder Variablesと進んで下さい。

変数を設定するための画面を表示する絵
変数を設定するための画面を表示する

今出現したのが「Recorder Variables」という変数を設定するための画面です。現時点で、Action Library、○○.rpae、Recorder Variablesの3つの窓が開いているはずです。この3つは自由に動かす事ができるので、見やすい場所に変更して作業を進めましょう。私の場合はこのようにします。

Recorder Variablesを表示させて、位置を整えた図
Recorder Variablesを表示させて、位置を整えた

それでは変数名をつけましょう。変数は3つの設定をすることで作成出来ます。変数を作る事を宣言と言います。今後は、変数を作る事を宣言と呼びます。

  • Name

Nameは変数名です。日本語は使えません。今回はヘッダを作るので「header」という変数名にしました。

  • Type

変数がどのような値を持つかという意味です。変数の種類と言えます。日本語では型と言います。今回は「売上高」という文字列を入れるので、String型を選択します。String型の変数に数字を入れることはできません。

  • Default Value

変数はいつでも新しく値を入れたり、変更したりすることができます。一方、予め代入を入れた状態で宣言することもできます。初期値ですね。今回は「売上高」という文字列を使うと予め分かっているので、そのまま初期値としておきます。

完了したら下のようになるはずです。

headerと言う名前のString型の変数を設定して、初期値を「売上高」にした絵
String型の変数を設定して、初期値を「売上高」にした

これで変数は準備完了です。

Set Cell Valueアクションに変数を渡す

それではSet Cell Valueアクションに変数を渡しましょう。

Set Cell Valueアクションの設定の絵
Set Cell Valueアクションの設定

Coordinatesというのは座標の意味です。ここではエクセルのセルを意味しています。今回は座標で指定するので、Coordinatesを選択して「F1」と記入します。Variable name:をクリックすると先ほど作成したheaderという変数が選択できるようになっているので、選択。これで、F1セルに「売上高」と言う文字を入れる事ができました。

上書き保存するアクションを追加して、動作確認する

念のために確かめておきましょう。といってもファイルは開いたら閉じるのがRPA Expressの仕様でしたね。上書き保存するアクションを追加しておきましょう。Action LibraryのExcelから「Save spreadsheet」をダブルクリックするだけです。

最後に上書き保存を追加
最後に上書き保存を追加

できてますね。

F1に「売上高」と言う文字列が入力できたことを確認
F1に「売上高」と言う文字列が入力できたことを確認

次ページでは繰り返しを使ってF2セルからF7セルまで売上金額を記入していく準備として、C列の値とD列の値をかけ算するスクリプトを作成します。


*1:今回はLaunch ApplicationからEXCEL.EXEを起動する必要はありません。いつもみなさん、エクセルのブックをダブルクリックして開いていますよね。あれと同じです。エクセルのブックをダブルクリックするとエクセルアプリケーションが同時に立ち上がるのがExcelの仕様です。

*2:フルパスとは、そのファイルが保存されている場所に「\」とファイル名を付け加えたものです。

*3:不安な方はAlt + Ctrl + Del同時押しでタスクマネージャを起動して、エクセルアプリケーションが閉じていることを確認してください

*4:Set Cell Valueアクションの様に、Actionは何かを受け取って、その情報を元に何かをする役割を持った機能といえます