Googleスプレッドシートで毎週・毎日同じ作業を繰り返している方、「これ、自動化できないかな?」と感じたことはありませんか?
「でもコードは書けないし…」と諦めていた方に朗報です。スプレッドシートには操作を記録するだけで自動化できる「マクロ機能」が標準搭載されています。Excelのマクロと名前は同じですが、使い方はもっとシンプル。メニューから「マクロを記録」を選び、いつもの作業をいつも通りやるだけで、次回からはワンクリックで同じ処理を再現できます。
この記事では、コードを書かない前提で、記録・実行・ショートカット割り当て・よくあるエラー対処まで、実務で使えるマクロ活用を丸ごと解説します。Excel VBA経験者向けに違いもまとめているので、両方触る方もぜひ参考にしてください。
この記事はWindows版を基準に解説しています。Macの場合は
Ctrlを⌘(Command)、AltをOptionに読み替えてください。
スプレッドシートのマクロ機能とは?
まず「そもそもマクロって何?」「Excelのマクロと何が違うの?」という疑問からスッキリ整理していきましょう。
操作を記録して再現する自動化機能
スプレッドシートのマクロは、シート上で行った操作をそのまま記録して、後で同じ順番で再現できる機能です。たとえば「A列を昇順で並べ替え → ヘッダー行に色を塗る → 1列目の幅を広げる」という3ステップの作業を記録しておけば、次回からはマクロを1回呼び出すだけで全部終わります。
記録できる操作は意外と幅広く、セルの選択・値入力・書式設定・並べ替え・フィルタ・数式入力・シートの追加削除・条件付き書式の設定などが対象です。毎週の定型レポート整形や、データ取り込み後のフォーマット統一などに向いています。
裏側は Apps Script(コード)で動いている
ここがExcelマクロと大きく違うポイントです。スプレッドシートのマクロは、記録した操作を裏側でGoogle Apps Script(通称GAS)というJavaScriptベースのコードに変換して保存しています。
つまり、見た目は「操作を記録した」だけですが、実体はプログラムです。コードを見たければ「拡張機能 > Apps Script」から開けますし、慣れてくれば手書きで機能を追加することもできます。最初は「裏でコードが動いている」くらいの理解でOK。本記事では操作ベースの使い方に絞って解説していきます。
Excel のマクロ(VBA)との違い
Excel経験者は「VBAと同じ感覚」で入ると少し戸惑います。主な違いを表で整理しておきます。
| 項目 | Excelマクロ | スプレッドシートマクロ |
|---|---|---|
| 言語 | VBA(Visual Basic) | Google Apps Script(JavaScriptベース) |
| 実行場所 | ローカルPCのExcel内 | Googleのサーバー上 |
| 保存先 | .xlsmファイル内 | スプレッドシート本体に紐づく |
| トリガー | イベントマクロ(Workbook_Openなど) | Apps Scriptのトリガー(時間・編集時など) |
| 配布 | ファイルをコピー/共有 | スプレッドシートを共有すると自動的についてくる |
言語も実行環境も違うので、VBAコードをそのまま流用することはできません。ただし「操作を記録して再現する」という基本思想は同じなので、VBAで「マクロの記録」を使っていた方ならすぐ馴染めます。
マクロを記録する基本手順
ここからは実際に手を動かしてみましょう。シンプルな「選択範囲を太字にして背景色を付ける」マクロを記録する流れで解説します。
手順1: 拡張機能 > マクロ > マクロを記録
メニューバーから 「拡張機能」> 「マクロ」> 「マクロを記録」 をクリックします。画面下部に小さなダイアログが表示され、記録が開始されます。
「マクロ」メニューが表示されない場合は、スプレッドシートを開き直すか、ブラウザを再読み込みしてみてください。Googleアカウントにログインしていない状態では表示されません。
手順2: 絶対参照/相対参照を選ぶ
ダイアログには「絶対参照を使用」と「相対参照を使用」の2択があります。ここの選択が後々の挙動を左右するので、最初に方針を決めておきます。
- 絶対参照: 記録時に触ったセル番地(例: A1)そのものを、実行時も操作する
- 相対参照: 実行時に選択しているセルを起点に、記録時と同じ位置関係で操作する
「毎回A1セルの値を書き換える」ような固定位置の作業なら絶対参照、「選んだセルから下3行を色付けする」ような可変位置の作業なら相対参照を選びます。詳しくは後述の専用セクションで解説します。
手順3: 自動化したい操作を実際に行う
ダイアログが表示されている状態で、普段通りに操作を行います。太字にしたいセルを選択し、Ctrl + B で太字にして、塗りつぶしアイコンから背景色を選ぶ、といった感じです。
この間のすべての操作が記録されるので、余計なセル移動やクリックをしないことがコツです。間違えた場合は一度記録を中止してやり直した方が、クリーンなマクロになります。
手順4: 保存して名前を付ける
操作が終わったらダイアログの「保存」ボタンを押します。マクロ名の入力欄が出るので、後から見て分かる名前を付けてください(例: 「ヘッダー強調」「日報整形」など)。
この画面でショートカットキーも割り当てられますが、後からでも変更できます。とりあえず名前だけ決めて「保存」すれば完了です。お疲れさまでした、これで初めてのマクロが記録できました。
記録したマクロを実行する/ショートカットキーを割り当てる
マクロは「記録しただけ」では宝の持ち腐れ。実行方法と、日常的に呼び出しやすくするコツを押さえましょう。
メニューから実行する
もっとも基本的な実行方法は 「拡張機能」> 「マクロ」> (保存したマクロ名) をクリックすることです。対象のセルや範囲を選んでからマクロを呼び出せば、そのセルに対して記録した操作が再生されます。
マクロ一覧には保存したマクロが上から順に並びます。よく使うものほど上に置いておくと選びやすくなります(後述の「マクロを管理」から並び替え可能)。
ショートカットキー(Ctrl+Alt+Shift+数字)を割り当てる
毎回メニューから選ぶのは面倒なので、ショートカットキーを割り当てましょう。スプレッドシートのマクロ用ショートカットは Ctrl + Alt + Shift + 数字(0〜9) の形で固定されており、1つのスプレッドシートあたり最大10個まで登録できます(Macでは ⌘ + Option + Shift + 数字)。
割り当て方法は次の通りです。
- 「拡張機能」>「マクロ」>「マクロを管理」を開く
- 対象マクロの右側にある「ショートカット」欄に数字(例: 1)を入力
- 「更新」をクリック
これで Ctrl + Alt + Shift + 1 を押せば、即座にそのマクロが走ります。キー同時押しが多くて最初は戸惑いますが、一度慣れると段違いに速くなります。他のショートカットキーと衝突しにくいよう、このキー組み合わせが採用されています。
初回実行時の承認(認可)フロー
初めてマクロを実行すると、「承認が必要」というポップアップが出ます。これは Apps Script が「あなたのスプレッドシートを編集してもよいですか?」と許可を求める画面です。慌てず次の手順で進めてください。
- ポップアップの「続行」をクリック
- Googleアカウントの選択画面が出たら、自分のアカウントを選ぶ
- 「このアプリは Google で確認されていません」と表示された場合は 「詳細」>「(プロジェクト名)に移動(安全ではないページ)」 をクリック
- アクセス許可のリストを確認して「許可」をクリック
「確認されていないアプリ」の警告は、自分で記録したマクロなら無視して問題ありません。他人が配布したマクロの場合は、中身(Apps Scriptコード)を確認してから許可してください。一度認可すれば、次回以降は警告なしで実行できます。
絶対参照と相対参照の違い(動作が変わる要注意ポイント)
マクロで一番ハマりやすいのがこの参照の違い。ここを理解しておくと「記録した通りに動かない…」というトラブルの9割は防げます。
絶対参照: 記録したセル番地そのものを操作する
絶対参照モードで記録したマクロは、記録時に触ったセル番地を、実行時もそのまま触ります。たとえば「A1に”合計”と入力する」を絶対参照で記録すると、実行時にどこを選択していても必ずA1セルに”合計”が書き込まれます。
- 向いているケース: ヘッダー行に固定文字を入れる、特定のセルだけ書式を変える、固定の範囲を並べ替える
- 向いていないケース: 選択した行を基準に操作したい、複数のシートで同じ処理を繰り返したい
相対参照: 選択中のセルを基準に操作する
相対参照モードでは、記録時のセル間の位置関係だけが保存されます。たとえば「A1を選び、右のB1に値を書く」を相対参照で記録しておけば、実行時にC5を選んでいれば右隣のD5に値が書き込まれます。
- 向いているケース: 選択した行ごとに同じ処理を繰り返す、どの列でも使える汎用整形マクロ
- 向いていないケース: 固定位置のセルを操作したい
動作の違いを表で比較
「A1に”売上”と書いて、A2〜A4を黄色に塗る」という同じ操作を、両モードで記録した場合の挙動を比較します。
| 実行時の選択セル | 絶対参照の動作 | 相対参照の動作 |
|---|---|---|
| A1 | A1に”売上”、A2〜A4が黄色 | A1に”売上”、A2〜A4が黄色 |
| D5 | A1に”売上”、A2〜A4が黄色(選択位置は無視) | D5に”売上”、D6〜D8が黄色 |
| シート2のA1 | シート1のA1に”売上”(シート名も固定) | シート2のA1に”売上”、A2〜A4が黄色 |
絶対参照は「場所」を記憶し、相対参照は「手順」を記憶する、とイメージすると分かりやすいです。迷ったら まず相対参照で試し、うまくいかなければ絶対参照に切り替える のがおすすめです。
マクロを編集・削除する(Apps Script との橋渡し)
「ちょっとだけ変更したい」「不要になったから消したい」というときの操作です。ここからはコードの話も少し出てきますが、読み飛ばしてもマクロは使えます。
マクロを管理から編集・削除
「拡張機能」>「マクロ」>「マクロを管理」 を開くと、このスプレッドシートに保存されているマクロ一覧が表示されます。各マクロの右側にある点3つ(⋮)アイコンから次の操作ができます。
- マクロの名前を変更
- マクロを削除
- スクリプトを編集(コードエディタを開く)
ショートカットキーの変更もこの画面で行います。不要になったマクロは削除しておかないと一覧が膨らむので、定期的に整理しましょう。
スクリプトエディタでコードを確認する
「スクリプトを編集」をクリックすると、別タブでApps Scriptエディタが開きます。記録したマクロは function マクロ名() { ... } の形でコードになっているはずです。
function ヘッダー強調() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A1:C1').activate();
spreadsheet.getActiveRangeList().setFontWeight('bold')
.setBackground('#fff2cc');
};
最初は意味が分からなくても大丈夫です。「ああ、裏ではこういうコードが動いてたんだな」と眺めるだけでも十分。慣れてきたら、色コードの部分だけ書き換えてみるといった小さな編集から始められます。
記録できない操作を Apps Script で追加する入口
記録マクロでは再現できない操作もあります。たとえば以下のような処理は手書きコードが必要です。
- 外部APIからデータを取得する
- 特定の条件で分岐する(「売上が100万円以上なら赤く塗る」など)
- 他のGoogleサービス(ドライブ・Gmailなど)と連携する
- 定時に自動実行する(トリガー設定)
記録マクロはあくまで「入口」。ここから先は Apps Script の世界なので、興味が湧いたら公式ドキュメントやサンプルコードを参考に一歩踏み出してみてください。非エンジニアでも、短いスクリプトなら意外と書けるものです。
マクロで自動化しやすい作業/向かない作業
何でもかんでもマクロ化すればいいわけではありません。むしろ「マクロ化しない方が早い」ケースもあるので、判断基準を押さえておきましょう。
向いている作業の例
以下のような条件が当てはまる作業は、マクロの効果が大きく出ます。
- 毎週・毎日繰り返している定型作業(週次レポートのフォーマット整え、日報のヘッダー追加など)
- 操作手順が毎回同じ(分岐がない、人の判断が要らない)
- 1回あたりは数分だが、積み重ねで時間を食っている(1回3分 × 週5回 = 年間13時間)
- 複数人がバラバラにやっていて品質にムラがある(マクロ化で手順統一)
向かない作業の例
一方、以下のような作業はマクロ化しても効果が薄いか、むしろ逆効果になります。
- 毎回手順が違う(状況判断や調整が必要な作業)
- そもそも月1回しかやらない(記録・メンテナンス工数の方が大きい)
- ワンショットの作業(1回きりで終わる整形や集計)
- データ量が多く実行時間6分を超える(Apps Scriptの実行時間上限に引っかかる)
特に最後の「6分制限」は知らないとハマります。Google Apps Script には1回の実行あたり最大6分という上限があり、巨大データの一括処理には向きません。そうしたケースは Apps Script でバッチ分割するか、そもそも別ツール(BigQueryなど)を検討した方が早いです。
繰り返し頻度×工数の早見表
「マクロ化した方が割に合うか?」を判断するための早見表です。縦軸が1回あたりの作業時間、横軸が実施頻度です。
| 1回あたりの作業時間 | 毎日実施 | 週1回実施 | 月1回実施 |
|---|---|---|---|
| 30秒以下 | マクロ化推奨 | 様子見 | マクロ化不要 |
| 1〜5分 | 即マクロ化 | マクロ化推奨 | 様子見 |
| 10分以上 | 即マクロ化 | 即マクロ化 | マクロ化検討 |
目安として、「年間で合計1時間以上かかっている作業」はマクロ化を検討する価値ありと考えてください。マクロの記録自体は数分で終わりますし、シート間でコピーすれば使い回しも効きます。
よくあるエラーと対処法
最後に、マクロを使っていて遭遇しがちなトラブルと解決策をまとめます。
承認エラー(認可画面が出てから進めない)
初回実行時に「このアプリは Google で確認されていません」と表示されて止まってしまうケースです。これは自分で記録したマクロでも起こります。
対処法: 警告画面の左下にある 「詳細」 をクリック → 展開された中の 「(プロジェクト名)に移動(安全ではないページ)」 をクリック → 許可画面で「許可」を押す、という手順で進めます。自分が作ったマクロなら安全なので進めて問題ありません。
組織のGoogle Workspace管理者が外部スクリプトの実行を制限している場合、個人では解除できないことがあります。その場合は管理者に相談してください。
相対参照で意図どおりに動かない
「相対参照で記録したのに、実行すると変な場所に書き込まれる」というケース。原因の多くは記録時に余計な絶対位置の操作が混ざっていたことです。
対処法: 記録開始直後に「名前ボックス」にセル番地を直接入力する、ツールバーの「A1セルへ戻る」ボタンを押す、といった操作は絶対参照として記録されがちです。記録時は 矢印キーや Tab キーによる相対移動 を使うと、相対参照の記録が安定します。
それでもダメな場合は、「マクロを管理 > スクリプトを編集」でコードを開き、getRange('A1') のような絶対指定が混ざっていないか確認してください。
共有ファイルで他のユーザーが実行できない
自分の環境では動くのに、共有相手が実行するとエラーになるパターンです。
対処法: スプレッドシートのマクロは 実行者ごとに個別の認可が必要です。共有相手にも「初回実行時に承認フローを通してもらう」必要があります。相手にこの記事の「初回実行時の承認(認可)フロー」セクションを共有してあげると早いです。
また、編集権限がないユーザー(閲覧のみ・コメントのみ)はマクロを実行できません。共有設定で「編集者」に変更するか、マクロの実行が必要な担当者だけ編集権限を持たせる運用に切り替えてください。
まとめ
スプレッドシートのマクロ機能は、コードを書かない人でも「操作の記録」だけで自動化を始められる、非常に実用的な機能です。最後にこの記事のポイントを振り返ります。
- マクロは「拡張機能 > マクロ > マクロを記録」で開始し、いつもの操作をするだけで記録完了
- 実行は「拡張機能 > マクロ」から、またはショートカットキー
Ctrl + Alt + Shift + 数字で呼び出せる - 絶対参照は「場所」を、相対参照は「手順」を記憶する。迷ったら相対参照から試す
- 初回実行時は承認(認可)フローが必要。自分で記録したマクロなら「安全ではないページに移動」で進んでOK
- 「繰り返し頻度 × 1回あたりの工数」で年間1時間以上かかる作業はマクロ化の価値あり
- 記録できない複雑な処理は、Apps Script(裏で動いているJavaScriptコード)で拡張できる
まずは日常業務の中で「あ、また同じ操作してるな」と感じた瞬間にマクロを記録してみてください。記録自体は数分で終わります。1週間後には、いくつかのマクロがショートカット1つで呼び出せる状態になっているはずです。
スプレッドシート自体の基本操作を押さえたい方はGoogleスプレッドシート入門ガイドを、ショートカットキーでさらに速度を上げたい方はスプレッドシートのショートカットキー厳選30選を合わせて読んでみてください。書式設定の自動化に興味があれば条件付き書式の使い方もおすすめです。
Excelユーザーの方はExcelのVBA・マクロの違いやExcel VBA 自動化ガイドも参考になります。Excel側と比較することで、スプレッドシートマクロの立ち位置がより鮮明になりますよ。
