[新機能]スプレッドシートのマクロ機能について解説!GAS使いに嬉しい裏技も

こんにちは、色んな効率化が大好きなたぬ(@tanuhack)です!

今回は、スプレッドシートに新機能として追加された『マクロ』について紹介します。

マクロ機能を使って何が出来るかというと、セルの移動や値や行・列の挿入、削除、表作成、etc…。これらの作業を全て自動で行うことができるんです!!!

つまり、毎回行っている定例処理は、マクロ機能を使えば瞬殺できるという訳です。秒で雑務が片付きます。

マクロ』と聞くと、「何だか難しそうだな」なんて思うかもしれませんが、ちょっと考えてみて下さい。

確かに、少しだけハードルは上がるかもしれませんが、「少しだけ勉強して、これからの作業がほぼ全て自動化出来たら」と思うと安いものです。

それでは始めます。

そもそもマクロとは

スプレッドシートでは、関数やセルの操作、並び替えなど、さまざまな処理の裏側で、Google Apps Script(※通称GAS)というJavaScriptベースのスクリプト(プログラム)が動いています。

以前からスクリプトの知識があれば、GASを組んでいろいろなことを自動操作することが出来ました。

つまり今回導入されたマクロ機能を使えば、以前はプログラムを組まないと出来なかったことでも、より直感的かつ簡単作業の自動化誰でもすることが出来るようになったというわけです。

この機能はExcelには元々あったのですが、ようやくスプレッドシートにも導入されました。

つまり、Excelの一強時代が終焉を迎えたと言っても過言ではないでしょうね。

スプレッドシートがExcelより優れている5つの理由!今すぐ移行しよう

マクロ機能は、次の3ステップで簡単に自動化できます。

macro1

まずは、最初の『マクロを記録する』STEPを見てみましょう。

マクロを記録する

macro2

今回は例として『1枚目のシートのA1セルに移動してHereと入力させる』というマクロを記録してみましょう。

メニューバーにある[ツール]→[マクロ]→[マクロを記録]の手順でマクロを記録することができます。

macro5

[マクロを記録]を選択すると、次のようなアラートが表示されます。

macro7

マクロの記録の種類
  1. 絶対参照を使用:セルの番地に固定されているマクロ
  2. 相対参照を使用:セルの番地が柔軟なマクロ

どのセルをマクロでいじるか厳密に固定したい場合は、絶対参照を。それ以外は相対参照を使えばいいです。

今回の例では、最終的にA1セルに『HERE』という値を入力するので、絶対参照を使います。

最初はどちらを使えばいいか分からないかもしれませんが、使い続けるうちに慣れてくるので、心配しなくて大丈夫!

それでは、実際にマクロを記録してみましょう。

マクロの記録を終了させたい場合は、[保存]を選択します。

macro8

そして、マクロの名前を決めて[保存]を選択してマクロの記録が終了します。

macro14

一連の流れをGIFで作ってみました。よく分からなかった人は、どうぞご覧下さい↓

macro6
1枚目のシートのA1セルに移動して『HERE』と入力するマクロを記録

マクロを実行する

macro3

次に、記録したマクロを実行させてみましょう。

マクロを実行するやり方は2つあって、どちらか使えば先程記録したマクロを実行することができます。

マクロの実行させる2つの方法
  1. [ツール]→[マクロ]→[記録したマクロ]を選択
  2. 記録するときに設定したショートカットキーを使用

いずれかのやり方で、実行してみてください。するとスプレッドシート側からマクロを使用するための承認を求められるハズです。

承認作業をする

作ったスプレッドシートで初めてマクロを実行する場合、承認を求められます。

たったの3ステップで終わるので、ちゃちゃっと済ませましょう。

STEP1:[続行]を選択

macro9

STEP2:スプレッドシートに紐付いているGoogleアカウントを選択

macro10

STEP3:[許可]を選択

macro11

これで、承認作業は終了です。もう一度、マクロを実行してみましょう。

macro12
1枚目のシートのA1セルに移動して『HERE』と入力するマクロを実行

無事、マクロが実行されました(^o^)

マクロを編集する

macro4

マクロに別の処理をさせたくなった場合、再度『マクロの記録』をやりなおしてもいいですが、やり直さなくてもマクロを編集することが出来るんですよ。

お察しの通り、マクロの編集にはスクリプト言語であるGASを記述します。

[ツール]→[スクリプトエディタ]

macro19

マクロを編集する際は、このスクリプトエディタの画面から、GASを書いていくことになります。

注意
GASについては、この記事の理解の範囲を超えるので、詳細は割愛します。あしからず。

この機会にGASを覚えてみてはいかがでしょうか。

簡単に習得できる割にリターンが大きいです。

業務に直結しやすい言語なので、覚えておいて損はないと思います。

[応用]GAS使いが歓喜する裏技

今回の新機能であるマクロは、直感的にマクロを記録・実行できることだけが凄いわけではありません。

『GASで書いたプログラムをスクリプトエディタ側でなく、スプレッドシート画面から実行できる』という点が個人的に激アツですね。興奮しすぎて夜も眠れません。

先程、マクロを編集する方法を紹介しましたが、てきとうに記録したマクロを全消しして好きなプログラムを書いてスプレッドシート側から実行してみて下さい。

STEP1:てきとうにマクロを記録する

macro15
A1セルに『a』と入力するマクロ

STEP2:スクリプトエディタを開いて、マクロを書き換える

[ツール]→[スクリプトエディタ]

macro16

そして、自動生成されたプログラムの中を全消しします。

注意
注意
このとき、自動生成されたmacro()の名前を変更してはいけません。スプレッドシートからマクロを呼び出せなくなってしまいます。

macro13

例として、アクティブなシート名を取得するスクリプトを記述します。

function macro() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  var sheetname = sheet.getName();
  sheet.getCurrentCell().activate().setValue(sheetname);
};
【コピペでOK】スプレッドシートでシート名を取得する方法

STEP3:スプレッドシートからマクロを実行させる

macro18

普段からGASを使っていた人も、今回のマクロ機能の便利さを体験いただけたのではないでしょうか。

このマクロ機能は、ショートカットキーから呼び出すこともできます。

GASで書き換えたスクリプトでさえ、スプレッドシートの画面からショートカットキーから呼び出せる訳なので、もうヤバイですね。

【保存版】実務の効率化が加速するスプレッドシートのショートカットキー18選!

さいごに

今回はスプレッドシートの新機能であるマクロについて紹介しました。

個人的には、スプレッドシートの画面からGASで書いたスクリプトが呼び出せることが衝撃すぎて心が踊っています。

マクロをふんだんに使って、業務を加速させよう!

それでは