スプレッドシートでのマクロの使い方について解説!

最終更新日:2026年8月21日

Googleスプレッドシートのマクロ機能を説明するイメージ画像

Googleスプレッドシートにはマクロ機能があります。ユーザー操作を記録してマクロを作成することもできますし、VBAの代わりにGoogle Apps Script(GAS)を使ってマクロを編集することもできます。

今回は、スプレッドシートでのマクロの使い方として「記録→実行→編集」の手順をステップごとに解説します。

スプレッドシートのマクロでできること

スプレッドシートのマクロを使うと、繰り返し行う作業を自動化して業務効率を大幅に改善できます。

スプレッドシートマクロ 活用シーン一覧
活用シーン 具体例
書式の一括適用 特定セルの文字色・太字・背景色を1クリックで設定
データの並べ替え・フィルタ 毎週のレポートを決まった列で自動ソート
シートのコピー・整形 テンプレートシートを毎月複製して日付を自動入力
外部サービス連携(GAS) スプレッドシートのデータをGmailやChatWorkに自動送信
定期実行(トリガー) 毎朝9時に自動でデータ取得・集計するマクロを実行

スプレッドシートマクロ vs Excelマクロの違い

スプレッドシートのマクロとExcelのマクロは、使用するスクリプト言語と実行環境が異なります。

スプレッドシート vs Excel マクロ比較
項目 スプレッドシートマクロ ExcelマクロVBA
スクリプト言語 Google Apps Script(JavaScript系) VBA(Visual Basic for Applications)
実行環境 クラウド(ブラウザ上) ローカルPC
複数人での共有 スプレッドシートと一緒に共有可能 ファイル共有が必要(マクロ有効ファイル)
外部連携 Gmail・GDrive・ChatWork等と連携可能 主にOffice系アプリとの連携
自動定期実行 トリガー機能で時間指定実行が可能 タスクスケジューラ等が別途必要

マクロの記録(操作を録画する)

スプレッドシートのマクロ機能は、ユーザーが行なった操作を「Apps Script」のスクリプトとして記録します。まずはマクロの記録から始めます。

新規でスプレッドシートを開きます。

新規スプレッドシートを開いた画面

スプレッドシート名を「マクロ」と変更します。A1セルに「test」と入力しておきます。

A1セルにtestと入力したスプレッドシートの画面

スプレッドシート画面で[ツール]→[マクロ]→[マクロの記録]を選択しましょう。

ツールメニューからマクロの記録を選択する操作画面

スプレッドシートの下部に「新しいマクロを記録しています」というバーが現れ、ユーザー操作の記録が開始されます。
このバーでは操作記録の保存、記録のキャンセル、また絶対参照を使用するか相対参照を使用するかを選択できます。

絶対参照はマクロの適用時に記録時と同じセルを使用する設定で、相対参照はマクロの適用時に選択中のセルを使用する設定です。

今回は絶対参照のままで作成します。

マクロ記録開始時のバーが表示されたスプレッドシート画面

「test」を太字にします。(この時バーに「操作1 書式スタイルを設定」と少しの間表示されます。)

A1セルのtestを太字に変更した操作画面

フォントの色を変えます。(この時バーに「操作2 書式スタイルを設定」と少しの間表示されます。)

A1セルのフォント色を変更した操作画面

記録したい操作が終了したら、バーから「保存」を選択しましょう。

マクロの記録完了後に保存ボタンをクリックする画面

保存時にマクロの名前とショートカットキーを指定できます。マクロの名前を「マクロ1」、ショートカットキーは[command]+[option]+[Shift]+[1]とします。

マクロの名前とショートカットキーを設定するダイアログ

保存します。「新しいマクロを保存しています」のメッセージが表示されます。

新しいマクロを保存しています中のメッセージ

「マクロを保存しました」のメッセージが表示されたらOKです。

マクロを保存しましたの完了メッセージ

マクロの実行

A1セルに「sample」と入力し、書式設定をリセットします。

A1セルにsampleを入力し書式をリセットした画面

[ツール]→[マクロ]を選択すると、記録したマクロが一覧で確認できます。

先ほど作成した「マクロ1」を選択します。もしくは[command]+[option]+[Shift]+[1]で実行できます。

ツールメニューからマクロ1を選択して実行する画面

初めてマクロを実行する時は承認が必要です。以下のようなメッセージが表示されるので「続行」をクリックします。

マクロの初回実行時の承認ダイアログ

紐付いているアカウントを選択します。

マクロ実行時のGoogleアカウント選択画面

以下のように「このアプリは確認されていません」と警告が表示される場合があります。

「詳細を表示」をクリックすると、「記録されているマクロ(マクロ)(安全ではないページ)に移動」が表示されるのでクリックしましょう。

このアプリは確認されていませんの警告画面

以下のような画面が表示されます。「許可」をクリックします。

マクロのアクセス許可ダイアログ

これで承認は完了です。もう一度「マクロ1」を実行しましょう。

マクロ1を再度実行する操作画面

マクロが実行され、「sample」の書式設定が変更されました。

マクロ実行後にsampleの書式が変更された完了画面

マクロの編集(GASスクリプトで書き換える)

記録したマクロはGoogle Apps Scriptエディタで編集でき、セル番地・書式スタイル・色などを自由に変更できます。

[ツール]→[マクロ]→[マクロの管理]を選択します。

ツールメニューからマクロの管理を選択する操作画面

ここから保存済みのマクロの編集や削除ができます。

保存済みマクロ一覧の管理画面

以下のように[︙]→[スクリプトを編集]を選択します。

マクロのスクリプトを編集する選択操作画面

これでGoogle Apps Scriptのエディタが開きました。コードを書き換えることでマクロを編集できます。

Google Apps Scriptエディタに自動生成されたマクロコードが表示された画面

自動生成されたコードのうち、よく変更する箇所を以下にまとめます。

// セル番地の変更:’A1′ → ‘D2’ に変更する例
spreadsheet.getRange(‘A1’) // 変更前
spreadsheet.getRange(‘D2’) // 変更後

// 太字 → 斜体に変更する例
.setFontWeight(‘bold’) // 変更前(太字)
.setFontStyle(‘italic’) // 変更後(斜体)

// フォント色の変更:黄緑 → オレンジ
.setFontColor(‘#00ff00’) // 変更前(黄緑)
.setFontColor(‘#ff9900’) // 変更後(オレンジ)

“spreadsheet.getRange(‘A1’)”“spreadsheet.getRange(‘D2’)”とすると書式スタイルを変更するセルの番地がD2に、

“setFontWeight(‘bold’)”“setFontStyle(‘italic’)”とすれば太字ではなく斜体に、

“setFontColor(‘#00ff00’)”“setFontColor(‘#ff9900’)”とすればフォントの色が黄緑からオレンジに変更できます。

セル番地と書式をD2・斜体・オレンジ色に書き換えたGASコード画面

ここまで書き換えたら[command]+[s]で保存します。

コマンド+Sで変更を保存するGASエディタ画面

スプレッドシートに戻ります。D2セルに「edit」と入力し、カーソルをA2セルに置きます。[command]+[option]+[Shift]+[1]でマクロ1を実行します。

D2セルにeditを入力し変更後のマクロを実行する操作画面

先ほど書き換えた通りD2セルの「edit」が斜体になり、フォントの色がオレンジに変更されました。これでマクロの編集まで完了です。

D2セルのeditが斜体・オレンジ色に変更されたマクロ編集完了の画面

GASを使われている方向け裏技

まず適当なマクロを記録します。記録したマクロの中身を全消し※して自分の好きなプログラム(スクリプト)を書いて変更を保存すると、スプレッドシートの[ツール]→[マクロ]からGoogle Apps Scriptで書いたプログラムをスプレッドシート画面から実行することができます。

もちろんショートカットキーからも呼び出せるので非常に便利です。

// ※ 自動生成された関数名は変更しないこと(スプレッドシートから呼び出せなくなる)
// 例:myFunction1 という名前が自動生成された場合、その名前を保持する
function myFunction1() {
  // ここに自分のGASコードを書く
  var sheet = SpreadsheetApp.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  Logger.log(data);
}

業務に直結しやすい言語なので、Google Apps Scriptを覚えておくと業務自動化の幅が大きく広がります。

トリガーで定期自動実行する方法

GASのトリガー機能を使うと、マクロを人の操作なしで自動実行させることができます。「毎朝9時にデータを集計したい」「毎週月曜にレポートをメールしたい」といった定期処理に最適です。

トリガーの設定手順

  1. GASエディタを開き、左側メニューの時計アイコン(トリガー)をクリックします
  2. 右下の「トリガーを追加」ボタンをクリックします
  3. 以下の項目を設定します:
    • 実行する関数:自動実行したい関数名を選択
    • イベントのソース:「時間主導型」を選択
    • 時間ベースのトリガーのタイプ:毎日・毎週・毎月・毎時などを選択
    • 時刻:実行したい時間帯を指定
  4. 保存」をクリックして完了です
ポイント:トリガーはGoogleのサーバー上で実行されるため、PCがオフの状態でも自動実行されます。Excelマクロのようにローカル環境に依存しない点が大きなメリットです。

トリガーの種類

トリガーの種類 実行タイミング 活用例
時間主導型(毎日) 毎日指定した時刻 朝9時に日次レポートを自動集計・送信
時間主導型(毎週) 毎週指定した曜日・時刻 月曜朝に週次まとめメールを送信
フォーム送信時 Googleフォームに回答があった時 問い合わせ受信時に自動返信メールを送る
スプレッドシート起動時 ファイルを開いたとき 開くたびに最新データを自動取得・更新

よくある質問(FAQ)

Q1. スプレッドシートのマクロをExcelのVBAのように使えますか?

できることは似ていますが、使用言語が異なります。スプレッドシートのマクロはGoogle Apps Script(JavaScript系)を使い、クラウドで動作します。一方ExcelはVBAでローカルPC上で実行されます。GASはGmail・カレンダー・Chatwork等の外部サービスとの連携が得意な点がVBAとの大きな違いです。

Q2. マクロを記録できる操作に制限はありますか?

セルの書式設定・値の入力・行列操作など多くの操作を記録できます。ただし、メニューを開く操作・設定変更・他のGoogleサービスとの連携などはマクロ記録では対応できません。それらの処理はGASスクリプトで直接コーディングする必要があります。

Q3. マクロを他のスプレッドシートでも使えますか?

記録したマクロはそのスプレッドシートに紐付いています。他のシートで使うには、GASエディタからコードをコピーして別のスプレッドシートのGASエディタに貼り付けることで利用できます。または「個人用マクロ」として保存すれば同じGoogleアカウントの全スプレッドシートから呼び出せます。

Q4. マクロを定期的に自動実行させることはできますか?

GASのトリガー機能を使えば可能です。GASエディタで「トリガー」を設定すると、毎日決まった時間・週次・フォーム送信時などのタイミングで自動実行できます。Excelマクロにはない強力な機能で、クラウド上で人の介在なく処理が完了します。詳しくはトリガーで定期自動実行する方法のセクションをご覧ください。

Q5. マクロの実行でエラーが出た場合はどう対処すればよいですか?

GASエディタの左メニュー「実行数」(時計アイコン)からエラーの詳細ログを確認できます。よくある原因は①権限・スコープ不足(外部サービス連携時に承認が必要)、②実行時間超過(処理が長すぎる場合)、③スプレッドシートの構造変更(参照しているセル範囲がずれている)の3つです。エラーメッセージを「実行数」画面で確認し、該当箇所のコードを修正しましょう。

Q6. スプレッドシートのマクロ(GAS)は無料で使えますか?

Googleアカウント(無料・有料問わず)があれば追加費用なく利用できます。ただし1回のスクリプト実行は最大6分(Google Workspace Business以上は最大30分)、1日のトリガー実行回数にも上限があります。通常の業務自動化であればこの制限に引っかかることはほとんどありません。

まとめ:スプレッドシートのマクロで業務効率アップ

スプレッドシートのマクロは、操作を記録するだけで繰り返し作業を自動化できる便利な機能です。さらにGASと組み合わせることで自動化の幅が大きく広がります。

この記事のポイント:

  • マクロの記録:ツール→マクロ→マクロの記録から開始。操作後に名前・ショートカットキーを設定して保存
  • マクロの実行:ツール→マクロから選択するか、設定したショートカットキーで呼び出す。初回のみ承認が必要
  • マクロの編集:GASエディタでコードを書き換えることで、セル番地・書式・色などを柔軟に変更できる
  • GAS裏技:マクロ名はそのままに中身をGASコードに書き換えると、スプレッドシートからGASプログラムをショートカット実行できる
  • トリガー定期実行:GASエディタのトリガー機能でPCオフ中も含めた自動実行が可能。毎日・毎週・フォーム送信時など柔軟に設定できる
  • Excelとの違い:GASはJavaScript系でクラウド上で動作し、Gmail等の外部連携やトリガー定期実行が得意

スプレッドシートの自動化をもっと活用したい方へ

GASを使った業務効率化・自動化のご支援を行っています。
「こんなことできる?」という段階のご相談も大歓迎です。

お問い合わせはこちら →

▼ アクロビジョンについて

👔

一緒に働きましょう

一人ひとりのキャリアに向き合い、
活躍できる現場をご紹介します。

採用サイトを見る →
💻

システム開発のご依頼・ご相談

コンサルティングから運用保守まで、
ワンストップで対応します。

まずはお気軽にご相談ください →