今回は無料で使えるRPAであるWorkfusion社の"RPA Express"でエクセルのセルに値を書き込む方法を解説します。
新たにブックを生成するのではなく、デスクトップに保存されているエクセルブックを開いて処理するケースを例に解説していきます。つまづきポイントである変数についても丁寧に説明していくので、着実に身に付けていきましょう。
目次
今回やりたいこと
今回やりたいことはRPA Expressを使ってエクセルデータの処理を行うことです。下記のデータを用意しました。売上実績データです。
支店ごとのある日の売上データだと思ってください。C列に販売単価、D列に販売実績が入力されています。F列が空欄なので、ここに売上高を計算して入力したいと思います。売上高は販売単価×販売実績で計算できるので、C列とD列の値を掛け算した値をF列に入力します。
F列にかけ算の値を入れるところまで解説するとすこし長いので、この記事では、ヘッダとしてF1セルに「売上高」と記入する部分について説明します。最終的には繰り返しを使って最終行までかけ算の結果を入力して集計するところまでたどり着くことを目指します。
操作対象のエクセルブックを開く
前回はエクセルのアプリケーションを何も開いていない状態から、新規でブックを作成する方法を勉強しました。今回は、捜査の対象であるブックを開きます。
エクセルブックはデスクトップ上に「売上実績データ.xlsx」という名前で保存されています。
左のほうに表示されているAction LibraryからExcelを選択します。すると、エクセルを操作するためのアクションが一覧で表示されるので、Open spread sheetを選択します*1。
「Open spreadsheet」をダブルクリックすると、Actions Flowに「Open Spreadsheet」のアクションが追加されます。これをダブルクリックして下さい。
File location:の右に開きたいファイルのフルパス*2を記入するところがあります。右の方の「Browse」というボタンを押して開きたいエクセルファイルを選択しましょう。
「あれ?開きたいエクセルファイルがない!」って方はファイルの種類が「.xls」になっているはずなので、ここをクリックして「.xlsx」に変更します。
このように、開きたいファイルのパスが入力できればOKです。これで、エクセルを開くことができます。
一応動作確認しておきましょう。今は、関係ないエクセルブックは閉じている状態ですね?
それでは、上の方の「Play recording」を押します。エラーが出なければOKです。でもエクセルを開いたようには見えないですよね。そうです。今回はエクセルのアプリケーションを表示させずに内部的に開きます。バックグラウンドではちゃんと開いています。RPA Expressの仕様的に、最後のアクションが終わった時に閉じるようになっています。内部的に開きっぱなしにはならないのでご安心ください*3。
エクセルのセルに値を書き込む:「売上高」の列を作成する
いよいよエクセルの中を操作していきます。今回やりたい事で触れたエクセルのイメージを再掲しておきます。
まずは1行目のヘッダ部分に「売上高」と記入して売上高の列を作成しましょう。Action Libraryから「Set cell value」をダブルクリックします。
すると、Action Flow内のOpen Spreadsheetアクションの下にSet Cell Valueアクションが追加されます。よく見ると少し段落のように下がった位置にあります。これを「インデント」と呼びます。インデントする事によって、インデントしている間はこのエクセルを操作しているのだな、と分かります。
このようにひとかたまりの作業をインデントしておく作業をRPA Expressさんが自動でやってくれているわけですね。
画面の右の方に、「どのように」を記述する画面が表示されるので、埋めていきます。どこのセルに、何を書き込むかです。
変数を用意する
ここで1つ変数を用意します。変数とは箱のようなもので、この中に文字や数字を入れることができます。今は、F1セルに「売上高」と言う文字を入れようとしています。そのために、変数を用意して、そこに「売上高」という文字を入れて、Set Cell Valueアクションに渡す作戦です*4。
まず、変数を用意する画面を出します。Window⇒Show View⇒Recorder Variablesと進んで下さい。
今出現したのが「Recorder Variables」という変数を設定するための画面です。現時点で、Action Library、○○.rpae、Recorder Variablesの3つの窓が開いているはずです。この3つは自由に動かす事ができるので、見やすい場所に変更して作業を進めましょう。私の場合はこのようにします。
それでは変数名をつけましょう。変数は3つの設定をすることで作成出来ます。変数を作る事を宣言と言います。今後は、変数を作る事を宣言と呼びます。
- Name
Nameは変数名です。日本語は使えません。今回はヘッダを作るので「header」という変数名にしました。
- Type
変数がどのような値を持つかという意味です。変数の種類と言えます。日本語では型と言います。今回は「売上高」という文字列を入れるので、String型を選択します。String型の変数に数字を入れることはできません。
- Default Value
変数はいつでも新しく値を入れたり、変更したりすることができます。一方、予め代入を入れた状態で宣言することもできます。初期値ですね。今回は「売上高」という文字列を使うと予め分かっているので、そのまま初期値としておきます。
完了したら下のようになるはずです。
これで変数は準備完了です。
Set Cell Valueアクションに変数を渡す
それではSet Cell Valueアクションに変数を渡しましょう。
Coordinatesというのは座標の意味です。ここではエクセルのセルを意味しています。今回は座標で指定するので、Coordinatesを選択して「F1」と記入します。Variable name:をクリックすると先ほど作成したheaderという変数が選択できるようになっているので、選択。これで、F1セルに「売上高」と言う文字を入れる事ができました。
上書き保存するアクションを追加して、動作確認する
念のために確かめておきましょう。といってもファイルは開いたら閉じるのがRPA Expressの仕様でしたね。上書き保存するアクションを追加しておきましょう。Action LibraryのExcelから「Save spreadsheet」をダブルクリックするだけです。
できてますね。
次の「③ エクセルから値を取得する」では繰り返しを使ってF2セルからF7セルまで売上金額を記入していく準備として、C列の値とD列の値をかけ算するスクリプトを作成します。
いちばんやさしいRPAの教本 人気講師が教える現場のための業務自動化ノウハウ [ 進藤圭 ] 価格:1,980円 |
<RPA Express(Work Fusion)関連記事>
① エクセルを開く
② エクセルに書き込む
③ エクセルから値を取得する
④ 値の型変換
⑤ カスタムアクション
*1:今回はLaunch ApplicationからEXCEL.EXEを起動する必要はありません。いつもみなさん、エクセルのブックをダブルクリックして開いていますよね。あれと同じです。エクセルのブックをダブルクリックするとエクセルアプリケーションが同時に立ち上がるのがExcelの仕様です。
*2:フルパスとは、そのファイルが保存されている場所に「\」とファイル名を付け加えたものです。
*3:不安な方はAlt + Ctrl + Del同時押しでタスクマネージャを起動して、エクセルアプリケーションが閉じていることを確認してください
*4:Set Cell Valueアクションの様に、Actionは何かを受け取って、その情報を元に何かをする役割を持った機能といえます