働き方改革としてRPAが注目を集めています。RPA(Robotics Process Automation)は、人間が行っている定型的なパソコン操作をロボットにより自動化するものです。
Googleのスプレッドシートもマクロという、作業を自動化する機能があります。
この記事では、スプレッドシートのマクロについて解説します。
マクロとは
業務を効率化するうえで、欠かせないのが作業の自動化です。マクロを使うことで作業を自動化することができます。
Wikipediaによると、
マクロ (英: macro) あるいはマクロ命令 (英: macroinstruction) は、計算機科学の分野では、アプリケーションソフトウェアの自動操作のような、プログラミング言語での記述と比較して粒度が大きい処理を記述したり、テキストを別のテキストに置換したり、粒度が大きい命令を粒度の小さい命令(マイクロ命令)に変換したりするための規則または型のこと。
マクロ(コンピュータ用語) – wikipedia
簡単に言うと、作業を自動化するために複数の操作を記録して、その操作を自動で再生する機能のことです。
同じ操作を何回もしている場合、それを記録することで、次からは自動で実行することができます。
Google Apps Scriptとは
マクロを使う上で欠かせないのがGoogle Apps Scriptです。
Google Apps Script(GAS)は、Googleが提供するサービスの1つです。JavaScriptベースのスクリプト言語で、Googleアカウントを持っていれば無料で使えます。
GASを使って、スプレッドシートを操作することができます。
普段行っている作業をマクロを使ってスクリプトとして記録することで、次からはそのスクリプトを実行することで作業を自動で行うことができます。
マクロを作成する
マクロを使えば、操作した作業を記録することができます。
A2セルからC2セルまでを黄色に塗りつぶして、太字にするマクロを作成してみます。
マクロを作成するには、スプレッドシートを開いて、「拡張機能」→「マクロ」→「マクロを記録」を選択します。
A2セルを選択した状態で「マクロを記録」をクリックします。
マクロのダイアログで「相対参照を使用」を選択します。
これで作業内容が記録されます。ビデオでいえば録画ボタンを押した状態です。
A2セルからC2セルを選択して、黄色に塗りつぶしてテキストを太字にします。
作業が終了したら、マクロダイアログの保存をクリックし、「黄色塗りつぶし、太字」と名前をつけて保存します。
絶対参照と相対参照
マクロの記録をするときに、「絶対参照」と「相対参照」が選択できるようになっていましたが、これは何でしょうか?
絶対参照:操作した正確な位置が記録される。
相対参照:現在選択されている位置を基準に記録される。
先ほど作成したマクロだと、A2セルを選択した状態でマクロを記録しました。
絶対参照だと、選択していたセルは関係なく、A2セルからC2セルへの操作が記録されます。
相対参照だと、選択していたA2セルを基準に、2つ横のセルまでの操作が記録されます。
マクロを実行したとき、絶対参照で記録していれば、常に同じセル(A2セルからC2セル)が黄色に塗りつぶされて太字になります。
相対参照で記録していれば、実行するときに選択しているから2つ右のセルまでが黄色に塗りつぶされて太字になります。
マクロを実行する
保存したマクロを実行してみます。A4セルを選択しておいてください。
「拡張機能」→「マクロ」→「黄色塗りつぶし、太字」をクリックします。
初めて実行するときには、承認が必要になります。
A4セルからC4セルが黄色で塗りつぶされて太字になりました。
スクリプトを編集する
マクロを記録して、実行することができました。次は、編集してみましょう。
記録しているマクロのスクリプトを確認するには、「拡張機能」→「Apps Script」をクリックします。
スクリプトエディタが開き、先ほど記録したマクロのスクリプトが確認できます。
簡単にスクリプトについて説明すると、
- 現在のスプレッドシートを取得します。
- 選択されているセルを含み、右に3つのセルを選択します。
- 選択されているセルを黄色で塗りつぶし、太字にします。
//見やすくするようにコメント、改行などを追加しています。
//スクリプトはマクロで作成したままです。
function myFunction() {
//1.スプレッドシートの取得
var spreadsheet = SpreadsheetApp.getActive();
//2.セルの選択
spreadsheet.getCurrentCell().offset(0, 0, 1, 3).activate();
//3.黄色の塗りつぶし、太字
spreadsheet.getActiveRangeList().setBackground('#ffff00')
.setFontWeight('bold');
};
緑に塗りつぶすようにスクリプトを編集してみます。色を表している「#ffff00」を「#00ff00」に変更します。
function myFunction() {
//1.スプレッドシートの取得
var spreadsheet = SpreadsheetApp.getActive();
//2.セルの選択
spreadsheet.getCurrentCell().offset(0, 0, 1, 3).activate();
//3.塗りつぶし、太字 ↓ここを変更
spreadsheet.getActiveRangeList().setBackground('#00ff00')
.setFontWeight('bold');
};
スクリプトを編集したら「Ctrl+S」で保存します。
スプレッドシートに戻って、マクロを実行してみましょう。
C3セルを選択した状態で、「拡張機能」→「黄色塗りつぶし、太字」をクリックします。
相対参照で作成していたので、C3セルを基準として右に3つ分のセルが塗りつぶされて太字になりました。
まとめ
マクロを使うことで作業を自動化することができます。
GASは、JavaScriptベースのスクリプト言語なので、JavaScriptの勉強にもなります。
ややこしい環境構築も不要で、普段の業務で使っていれば、すぐに自動化の恩恵を受けること実感ができます。
普段している単純な作業はマクロを使って自動化してみましょう。
複雑なことはマクロで記録するのは難しいので、本格的に自動化するにはスクリプトを書けるようになる必要がありますが、とっかかりとしてマクロを使うのはいい方法です。
セルを削除するにはどうやって書けばいいのか悩んだときは、セルの削除をマクロで記録すれば、セルを削除するスクリプトを確認できます。
GASを使えば、スプレッドシートだけではなく、自動でメールを送信したり、Webアプリを作ることもできます。
どんどん作業を自動化・効率化していきましょう。
参考
RPA(働き方改革:業務自動化による生産性向上) – 総務省
Google スプレッドシートによる Apps Script の基礎 #1:マクロとカスタム関数 – GoogleDevelopers