Excelマクロ・GAS・RPA(UiPath)。プログラミングで「記録」をおすすめしない理由と例外

プログラミングでは、自分がやった操作を記録してくれる機能があります。
Excelマクロ、GASといったプログラミングでは記録をおすすめしていません。
例外はRPAです。
Screenshot_1

 

Excelマクロで記録をおすすめしない理由

Excel マクロは Excel を自動化するプログラミングです。
厳密には VBA= Visual Basic Applicationという言語を使います。
(シンプルにするため総称して 「Excel マクロ」と私は表現しています)。
プログラムというと、こういったものを書くことをいいますが、

Sub test()

 Range("c3").Value = 100

End Sub

そうではなくて、操作を記録することもできます。

 

Excelの左下のマクロ記録ボタン(
表示されてない場合は、このあたりを右クリックして表示)をクリックすると、次のようなボックスが出てきて、そのまま Enter キーを押すと操作の記録開始です。


たとえばセルC3に100と入れてみましょう。
その後、左下のマクロの記録停止ボタンを押せば、「セルC3に100を入れる」という操作を記録できます。

この記録したプログラムを見るには、ExcelでAlt+ F 11(AltとF11を同時押し)を押します。
すると Excel マクロを書くソフト 、VBE=Visual Basic Editor が開きますので、標準モジュールのモジュール1というものをクリックしてみましょう。
このように、記録されたプログラムが表示されます 。

これが、
セルC3に100を入力するプログラムです。

Range("C3").Select
ActiveCell.FormulaR1C1 = "100"
Range("C4").Select

まずセルC3を選択して、
選択したセルに100を入力し、その後 Enter キーを押したのでセルC3の下のセルC4を選択しています。
このプログラムを F 5で実行すると、セルC3に100を入力できるわけです。
確実に何度も。

複雑な処理も同じような形で記録はできます。

 

しかしながらこのマクロの記録はおすすめしていません。
その理由は次の3つです。

1 もっとシンプルに書ける

セルC3に100を入れるというプログラムであれば、

Range(“c3”).Value = 100


シンプルに書けます。
記録すると3行、書くと1行です。
もちろんそのために覚えなければいけないことがありますが、プログラムを書いたほうが見やすくメンテナンスもしやすくなります。

 

2  繰り返しや条件分岐ができない

マクロの記録では、プログラミングの魅力である繰り返しや条件分岐ができません。
繰り返し処理をするなら、繰り返し記録する必要があります。
(記録されたマクロをコピーするという手もありますが。)
条件によって処理を分けることも、マクロの記録ではできません。

 

3 プログラミングのスキルが伸びない

プログラムのとっかかりとして記録を使う方法もありますが、限界はすぐに来ます
見ていただいたように余計な処理も記録しますので、それが学びのノイズになる可能性もあるでしょう。

何かを学ぶときには重要なことをインプットすることが大事ですが、そうでないことをインプットしないことも大事です。

 

 

 

 

Google スプレッドシート GAS Google Apps Scriptで記録をおすすめしない理由

Google スプレッドシート でも、プログラムの記録ができます。
Excel マクロは、昔からマクロの記録がありますが、 Google スプレッドシートで記録ができるようになったのはつい最近のことです。

Google スプレッドシートで、[ツール]→[マクロ]→[マクロの記録]を選択します。

これでマクロの記録がスタートします。


同じように、セルC3へ100を入力し、[保存]を押してみましょう


[新しいマクロの保存]として、名前を付けてショートカットキーを設定する画面が出てきます。
ここで再度保存をクリックしましょう。


保存後、左下に出てくる[スクリプトの編集]または、[ツール]→[スクリプトエディタ]で、スクリプトエディタを表示しましょう。

スクリプトエディタは、プログラムが保存されている場所であり、プログラムを書く場所です 。
Excel に VBE がついているように、 Google スプレッドシートにこのスクリプトエディタがついています。
原則として Excel 、Google スプレッドシートそれぞれにプログラムが保存されているわけです。


これを実行します。
実行は、Ctrl+R です。
そのプログラムをはじめて実行するときは、承認をしなければいけません。

記憶されているプログラムはこのようなものです。

function myFunction() {
 var spreadsheet = SpreadsheetApp.getActive();
 spreadsheet.getRange('C3').activate();
 spreadsheet.getCurrentCell().setValue('100');
 spreadsheet.getRange('C4').activate();
};

varで、spreadsheetという変数(箱)に今開いているGoogleスプレッドシートを入れます。
その後、
・スプレッドシートのセルC3を選択
・その選択したセルに100を入れる
・Enterキーを押しているので、その下のセルC4を選択
というプログラムです。

同じことをするためにプログラムを書くと、やはりこのようにシンプルに書くことできます。

function myFunction() {

 SpreadsheetApp.getActiveSheet().getRange('c3').setValue(100);

};

Excel マクロのときと同様の理由であり、繰り返しや条件分岐ができないと  スキルが伸びないという理由も同様です。

 

RPA (UiPath)の記録は例外あり

そしてRPA(私は少なくともプログラミングと考えています)。
この RPA が話題になるときに 「Excel マクロのように記録できるからかんたん。」「プログラミングを知らなくても大丈夫」と表現されることが多いのですが、決してそうではありません。

RPAで、ExcelのセルC3へ100を入れるというものを記録してみましょう。
使うRPA ツールはUiPathです。
UiPathでは、「レコーディング」という機能で記録できます。
という機能です。

ブラウザの操作を記録するときは ウェブレコーディング、デスクトップのソフト(アプリ)を記録するときはデスクトップレコーディングを使います 。

デスクトップレコーディングで、ExcelのセルC3へ100を入れてみます。

 

レコーディングで記録されたプログラムはこのようなものです。
実行すると確かに100と入れてくれます。

 

 


しかしながらこれは、セルC3を認識しているわけではなく、その時選択しているセルに100を入れているだけです。
ファイルもそのときに選択しているものしか選べません。

UiPathの場合、「プログラムの記録もできる」というものではなく、プログラムの記録では Excel を操作できません。

 

Excelの操作を自動化するなら、プログラミングするしかないわけです 。
(これは他の RPA ツールも、私が知る限り同じです)

ただ 、RPA の場合は 、Excel マクロやGASと違って、プログラムをコツコツ打つ必要はありません。

UiPathの場合は、[アクティビティ]といわれるパーツを組み合わせて操作を自動化できます。

UiPathを最初にインストールしたときは、Excelのパーツ[アクティビティ]が入ってませんので、UiPathのメニュー→[パッケージを管理]で、「UiPath Excel Activities]をインストールしましょう。

インストール後、UiPathの左下のアクティビティというタブを選択するとアクティビティの一覧が出てきます。
Excelと検索すればExcel関係のアクティビティで絞り込めますので検索してみましょう。

Excelを 操作するには 、「Excel アプリケーションスコープ]というアクティビティが必要です 。
ドラッグした後、使うExcelファイルを選択しましょう。
ここで選択できるようにするには、ファイルをいったん保存しなければいけません 。

 

このように設定できます。

セルに入力するには、「セルに書き込み」というアクティビティをドラッグして、シート名、セルを指定し、入力するもの「100」を設定しましょう。

これを実行すれば RPA として自動化できるわけです。

Excelの自動化には、記録だけでは難しく、このようにアクティビティを組み合わせて設定しなければいけません。
ただ、プログラム言語を入力しなくていい分、ExcelマクロやGASよりも敷居は低いものです。

これまで見てきたように、プログラミングで、記録はおすすめしません。
しかしながら、RPA の記録は例外があります。
Excelではなく、その他のデスクトップアプリケーションであれば記録でやったほうが楽な場合が多いのです。
次のプログラムは弥生会計を操作するもので、 デスクトップレコーディングで記録しました。

実行すれば、問題なく自動化できます。

しかしながら、これもアクセスキーというものを使ったほうが楽です。

ブラウザの操作であれば、 ウェブレコーディングというもので記録したほうが楽に自動化できます。
記録(レコーディング)しても、書いても、ほぼ同じプログラムです。
だからこそ、記録(レコーディング)を使っても問題ありません。

ただ、それでも中身がわかっていたほうが、応用がききますし、繰り返しや条件分岐ができないという記録のデメリットはあります。

RPA の場合は、記録を一部使えるというくらいに考えておきましょう。
結論としてはプログラミングスキルは必須です。

プログラミングの記録は、どうやってプログラムを書くかわからないときに調べるという使い方もあります。
しかし、今やネットで「〇〇 マクロ」や「〇〇 GAS」と検索すれば、該当のプログラムが出てくる可能性も高いので、検索したほうが早いでしょう。

私がプログラミング始めた頃は、職場の自分のパソコンがネットにつながってなく、マクロの記録で調べることも多かったのですが。

手軽なプログラミングでの記録。
頼りすぎないようにしましょう。

 

 



■編集後記

昨日、実家宮崎から戻ってきました。
車嫌いの娘のため、電車を使って空港へ。
宮崎空港は、市街地から近いので楽です。

4月28日に家を離れて以来、ひさびさの我が家でした。

■昨日の「1日1新」

メルちゃんキッズプレート
南宮崎駅→宮崎駅 電車

■昨日の娘日記
実家宮崎から帰るとき、「じぃじがいい」「じぃじがよかったー」としくしく泣いていました。
かといって目の前にいても寄って行ったりはいないのですが。