月曜日の朝、先週と同じ売上表を開き、見出しを太字にして、背景色を塗り、不要な行を消し、並べ替えてから担当者へ共有する。ひとつひとつは簡単なのに、毎週くり返すと地味に時間が溶けていきます。「またこの作業か」と感じた瞬間こそ、Googleスプレッドシートのマクロを使い始める合図です。
マクロは、難しいプログラミングから始める機能ではありません。まずは自分の操作を録画するように覚えさせ、次回から再生する仕組みです。慣れてきたら、記録されたGoogleAppsScript、通称GASを少し直して、集計、メール送信、定期実行まで育てられます。この記事では、作り方だけでなく、絶対参照と相対参照の違い、実行できない原因、ExcelのVBAとの違い、速度を落とさない設計、2026年6月時点の最新動向まで、初心者にもわかる言葉でつなげて解説します。
最初に、この記事で持ち帰れる内容を三つに絞ります。
- コードを書かずに始めるマクロ記録の正しい手順
- 失敗を防ぐ参照方法、権限、速度、共有の実践知識
- 記録した操作をGAS、トリガー、生成AIへ発展させる道筋
ここからは、単にボタンの場所を覚えるのではなく、どの作業を、どの方法で、どこまで自動化するかを判断できるようになることを目指します。
- Googleスプレッドシートのマクロとは?まずは録画と再生で理解しよう
- 初心者が迷わないマクロの作り方を7手順で実演
- 絶対参照と相対参照の違いは住所と道案内で覚える
- マクロを実行する4つの入口と使い分け
- 記録したマクロを編集すると自動化の幅が一気に広がる
- マクロとトリガーの違いを理解すると完全自動化へ進める
- ExcelのVBAはそのまま動かない!GASへ移行する考え方
- 2026年6月の最新動向!マクロと生成AIは競争ではなく分業へ
- よくある失敗を先回りして防ぐチェックポイント
- 実務で役立つマクロ設計!一回の便利より百回の安全を優先する
- Googleスプレッドシートのマクロに関する疑問解決
- まとめ!今日の単純作業を一つだけマクロに変えよう
Googleスプレッドシートのマクロとは?まずは録画と再生で理解しよう
マクロを一言で表すなら、複数の操作をひとまとめにして再実行する仕組みです。たとえば、見出し行を選び、背景を黄色にし、文字を太くし、中央揃えにする作業があるとします。普通なら四つの操作が必要ですが、マクロに記録しておけば、次回からは一回の実行で終わります。
小学生向けにたとえるなら、ゲームで毎回同じ順番に押すボタンを、ひとつの必殺技ボタンにまとめるイメージです。ただし、マクロは何でも自動で考えるロボットではありません。記録された順番を忠実にくり返すため、元データの位置やシート名が変わると、期待と違う場所を処理することがあります。だからこそ、後で説明する絶対参照と相対参照の理解が重要です。
Googleスプレッドシートでマクロを記録すると、裏側ではAppsScriptの関数が作られ、対象のスプレッドシートにひもづくスクリプトとして保存されます。つまり、マクロ記録は「自動化の完成品」であると同時に、「自分の操作がコードになる様子を見られる教材」でもあります。
| 方法 | 向いている作業 | 難しさ | 主な特徴 |
|---|---|---|---|
| マクロ記録 | 書式変更、並べ替え、定型的な表操作 | やさしい | 操作を記録するだけで始められます。 |
| AppsScript編集 | 条件分岐、複数シート集計、大量データ処理 | ふつう | 記録したコードを直して機能を広げられます。 |
| トリガー実行 | 毎朝の集計、フォーム回答後の処理、定期通知 | やや高い | 人がボタンを押さなくても自動で動かせます。 |
初心者が迷わないマクロの作り方を7手順で実演
ここでは、選択した見出しを薄い黄色に塗り、太字にするマクロを作ります。練習用のスプレッドシートを用意し、失敗しても困らないデータで試してください。作業前にファイルを複製しておくと、元に戻せない変更があっても安心です。
- パソコンのブラウザでGoogleスプレッドシートを開き、練習用の表を表示します。
- 上部メニューから「拡張機能」、「マクロ」、「マクロを記録」の順に選びます。
- 記録画面が表示されたら、今回の練習では「相対参照を使用」を選びます。
- 見出しにしたいセル範囲を選択し、背景色を薄い黄色に変更して、文字を太字にします。
- 記録画面の「保存」を押し、名前を「見出しを整える」のように具体的に付けます。
- 別の行を選択し、「拡張機能」、「マクロ」、「見出しを整える」の順に選んで実行します。
- 初回だけ表示される権限確認では、実行者と要求される権限を確認してから許可します。
これで、選択した場所を基準に同じ書式を再現できます。マクロ名は「処理1」ではなく、「請求書見出し整形」や「月次表を並べ替え」のように、誰が見ても結果を想像できる名前にしてください。数か月後の自分は、今日の作業内容をほとんど覚えていません。
初回実行で権限確認が出る理由
マクロの正体はAppsScriptなので、初めて動かすときにGoogleアカウントへのアクセス許可を求められることがあります。これは異常ではありません。ただし、内容を読まずに許可する習慣は危険です。自分で記録したマクロなのか、他人から共有されたスプレッドシートなのか、GmailやGoogleドライブなど必要以上の権限を求めていないかを確認しましょう。
会社や学校のアカウントでは、管理者の設定によって実行が制限される場合があります。そのときは、何度も許可を押すのではなく、管理者へスクリプト名、利用目的、必要な権限を伝えるほうが早く解決します。
絶対参照と相対参照の違いは住所と道案内で覚える
マクロ記録で最もつまずきやすいのが、絶対参照と相対参照です。難しい言葉に見えますが、絶対参照は住所、相対参照は現在地からの道案内と考えると理解できます。
| 参照方法 | 考え方 | 実行結果 | 向いている例 |
|---|---|---|---|
| 絶対参照 | 「A2からC2」のように場所そのものを記録します。 | どのセルを選んでいても同じ場所を処理します。 | 固定の集計欄、決まった帳票、同じセルの初期化 |
| 相対参照 | 「選択位置から右へ二列」のように距離を記録します。 | 実行時に選んだ場所を基準に処理します。 | 毎回違う行の整形、複数の表への同じ書式適用 |
たとえば、A2からC2を黄色にする操作を絶対参照で記録すると、A10を選んで実行してもA2からC2が黄色になります。相対参照なら、A10を基準にA10からC10が黄色になります。
判断に迷ったら、「毎回同じ住所を触りたいか、それとも今いる場所から同じ動きをしたいか」と自分に聞いてください。月次レポートのタイトル欄のように位置が固定なら絶対参照、選択した商品行を整えるような作業なら相対参照が向いています。
なお、一つの記録の途中で参照方法を何度も切り替えると、後からコードを読んだときに意図がわかりにくくなります。初心者のうちは、一つのマクロを一つの役割に絞り、参照方法もできるだけ統一すると失敗が減ります。
マクロを実行する4つの入口と使い分け
保存したマクロは、メニューから実行するだけではありません。実務では、使う人の人数と頻度に合わせて入口を選ぶと、操作ミスを減らせます。
| 実行方法 | 向いている人 | 長所 | 注意点 |
|---|---|---|---|
| 拡張機能メニュー | 初めて使う人 | 設定が少なく、動作を確認しやすいです。 | マクロが増えると探しにくくなります。 |
| キーボードショートカット | 毎日何度も使う人 | 最速で実行できます。 | 割り当てられる数字は限られ、同じシートでショートカット付きは最大十個です。 |
| 図形や画像のボタン | 複数人で使うチーム | 「ここを押す」が伝わりやすいです。 | 関数名を正確に割り当て、パソコンのブラウザで動作確認します。 |
| カスタムメニュー | 業務用の仕組みに育てたい人 | 処理を目的別に整理できます。 | AppsScriptでメニューを作る必要があります。 |
ショートカットは、たとえば
Ctrl+Alt+Shift+1
のような組み合わせです。便利ですが、数字だけでは役割を忘れやすいため、シート内に「1は整形、2は集計」のような説明欄を置くと親切です。
カスタムメニューは、スプレッドシートを開いたときに独自の「自動化」メニューを表示できます。最小構成は次のコードです。
function onOpen(){SpreadsheetApp.getUi().createMenu('自動化').addItem('売上を判定','judgeSales').addToUi();}
onOpen
はファイルを開いたときに動く特別な関数です。ただし、閲覧権限だけの人には実行されず、承認が必要なサービスを単純トリガーから自由に使えるわけでもありません。メール送信や他ファイル操作が必要なら、後述するインストール型トリガーを検討します。
記録したマクロを編集すると自動化の幅が一気に広がる
マクロを記録したら、「拡張機能」、「AppsScript」を開いて中身を見てみましょう。通常は
macros.gs
というファイルに関数が保存されます。Googleの公式仕様では、マクロとして使う関数は原則として引数を受け取らず、戻り値を返さない形にします。
たとえば、選択範囲を薄い黄色にして太字にするだけなら、次のような短い関数に整理できます。
function headerStyle(){const range=SpreadsheetApp.getActiveSheet().getActiveRange();range.setBackground('#fff2cc').setFontWeight('bold').setHorizontalAlignment('center');}
記録されたコードは、同じシート取得や同じ範囲指定が何度も書かれていることがあります。まずは動く状態を残し、コピーした関数で少しずつ整理してください。一度に全部を書き換えるより、「色だけ変更する」「対象列だけ変更する」と小さく試すほうが安全です。
大量データでは一セルずつ触らない
初心者が作ったGASが遅くなる最大の原因は、ループの中で
getValue
と
setValue
を何百回も呼ぶことです。スプレッドシートとの通信は、近所の引き出しを開ける動作ではなく、毎回サーバーへお願いする動作に近いからです。
速くする基本は、まとめて読み、メモリー上で計算し、まとめて書くです。A列の売上が十万円以上ならB列へ「重点」、それ以外なら「通常」と書く例は次のようになります。
function judgeSales(){const sheet=SpreadsheetApp.getActiveSheet();const lastRow=sheet.getLastRow();if(lastRow<2)return;const values=sheet.getRange(2,1,lastRow-1,1).getValues();const output=values.map()=>);sheet.getRange(2,2,output.length,1).setValues(output);}
この書き方では、読み取りが一回、書き込みが一回です。Googleのベストプラクティスでも、一セルずつ交互に読み書きするより、配列を使った一括処理が推奨されています。データが千行、万行と増えるほど差が大きくなります。
実行時間の上限を前提に設計する
AppsScriptには実行時間や一日の利用量に上限があります。2026年6月時点の一般的なスクリプト実行時間は、一回あたり六分です。単純トリガーは一回三十秒という制限があります。上限は変更される可能性があるため、長い処理を無理に一回で終わらせず、対象行を分割し、途中位置を保存し、次のトリガーで続きから処理する設計が有効です。
複数人が同時にボタンを押す可能性がある場合は、同じ行へ二重に書き込まないように
LockService
を使う方法もあります。また、外部サービスから同じデータを何度も取得するなら
CacheService
で一時保存すると、速度と利用量の両方を抑えられます。
マクロとトリガーの違いを理解すると完全自動化へ進める
マクロは、人がメニューやボタンから実行するのが基本です。一方、トリガーは「時刻になった」「セルが編集された」「フォームが送信された」といった出来事を合図に、自動で関数を動かします。
| 仕組み | 開始の合図 | 代表例 | 注意点 |
|---|---|---|---|
| マクロ | 人がメニュー、キー、ボタンを操作します。 | 選択範囲の整形、月次表の並べ替え | 実行する人の権限と選択位置に影響されます。 |
| 単純トリガー | ファイルを開く、セルを編集するなどの操作です。 | 編集時刻の記録、独自メニューの表示 | 承認が必要なサービスや実行時間に制約があります。 |
| インストール型トリガー | 指定時刻、フォーム送信、カレンダー更新などです。 | 毎朝の集計、回答後のメール通知 | 作成者の権限で動くことが多く、退職やアカウント停止に備えます。 |
大切なのは、いきなり完全自動化を目指さないことです。最初は手動マクロで結果を確認し、安定したらカスタムメニュー、最後にトリガーへ移します。人が押す段階で間違う処理は、自動実行にしても正しくなりません。
チーム運用では、トリガーの所有者を個人にしすぎないことも重要です。担当者の異動やアカウント停止で処理が止まるため、共有ドライブ、運用アカウント、手順書、エラー通知先を決めておくと、個人の便利技から会社の仕組みへ変わります。
ExcelのVBAはそのまま動かない!GASへ移行する考え方
「Excelで使っていたVBAマクロをGoogleスプレッドシートへ持っていけますか」という質問は非常に多いのですが、結論は明確です。VBAコードをGoogleスプレッドシートでそのまま実行することはできません。Google側ではJavaScriptを基にしたAppsScriptで作り直します。
| 比較項目 | ExcelのVBA | GoogleスプレッドシートのGAS |
|---|---|---|
| 主な実行場所 | パソコン上のExcel | Googleのクラウド環境 |
| 言語の考え方 | VisualBasic系 | JavaScript系 |
| セル参照 |
Cells(1,1)
|
getRange(1,1)
|
| 強み | Excel固有機能、ローカルファイル連携 | 共同編集、Gmail、ドライブ、フォーム、定期実行 |
| 移行方法 | 直接互換ではありません。 | 処理を分解してGASで再構築します。 |
移行で失敗する人は、VBAを一行ずつ直訳しようとします。成功しやすい方法は、コードではなく業務を分解することです。「複数シートのデータを集める」「重複を消す」「担当者別に分ける」「メールする」という目的に分け、それぞれをGAS、関数、ピボットテーブル、標準機能のどれで実現するか決めます。
Googleが提供する変換支援機能や生成AIは、たたき台づくりには役立ちますが、完全変換を保証するものではありません。ActiveX、ローカルフォルダー、Outlook操作、Excel独自の帳票機能などは、別の仕組みへ置き換える必要があります。変換後は、件数、合計値、日付、空欄、権限の異なる利用者で必ずテストしてください。
2026年6月の最新動向!マクロと生成AIは競争ではなく分業へ
2026年6月19日時点で、直近三日間のGoogle公式公開情報を確認した範囲では、Googleスプレッドシートのマクロ機能そのものに新しい仕様変更の発表は見当たりません。一方、6月18日には、Geminiを使ってスプレッドシート全体を作成、編集する機能が、日本語を含む追加二十八言語へ拡大されました。対象プランや管理者設定、スマート機能の有効化などの条件はありますが、日本語で表、数式、ピボットテーブル、グラフなどの作成を頼みやすくなっています。
ここで生まれる新しい気づきは、Geminiがマクロを消すのではなく、役割を分けるということです。Geminiは「この売上データを見やすく整理して」のような曖昧な相談や、初回の表づくりが得意です。マクロは「毎週、同じ条件、同じ結果で実行して」のような再現性が必要な仕事に向いています。
| 場面 | Geminiが向く理由 | マクロが向く理由 |
|---|---|---|
| 初めて作る集計表 | 自然な言葉から構成案を作りやすいです。 | 仕様が固まる前は変更が多く、記録し直しが増えます。 |
| 毎週同じレポート | 毎回指示すると結果の確認が必要です。 | 決めた手順を同じ順序で再現できます。 |
| コードの下書き | GASの案やエラー原因の説明を得られます。 | 実行権限、データ、例外処理は人が検証します。 |
| 重要データの更新 | 提案内容をそのまま確定処理に使うのは危険です。 | テスト済みの処理とログで管理しやすいです。 |
これからの実務では、Geminiにたたき台を作らせ、人が条件を確認し、安定した処理をマクロやGASへ固定する流れが強くなります。生成AIへ渡してよいデータか、社内規程に反しないか、作られた数式やコードが正しいかを確認する責任は残ります。
よくある失敗を先回りして防ぐチェックポイント
実行したのに違うセルが変わる
原因の多くは、参照方法と選択位置です。絶対参照なら記録時のセルへ戻り、相対参照なら実行時の選択セルを基準に動きます。マクロ実行前に、現在の選択範囲を目で確認してください。重要な処理では、コード内で対象シート名と範囲を明示するほうが安全です。
マクロのメニューが見つからない
パソコンのブラウザで開いているか、ファイルがGoogleスプレッドシート形式かを確認します。Excel形式のまま編集している場合は、Googleスプレッドシート形式へ変換してから試してください。組織アカウントでは、管理者がAppsScriptを制限している可能性もあります。
承認したのに実行できない
共有されたシートへの編集権限、保護された範囲、組織のセキュリティ設定、実行者のGoogleアカウントを確認します。複数アカウントへ同時ログインしていると、意図しないアカウントで承認画面が開くことがあります。シークレットウィンドウで対象アカウントだけにログインすると切り分けやすくなります。
途中で止まり「実行時間を超えました」と表示される
一セルずつ読み書きする処理をやめ、
getValues
と
setValues
で一括処理します。それでも長い場合は、処理する行を分割し、
PropertiesService
へ続きの行番号を保存して、時間主導トリガーで再開します。外部APIの呼び出し回数も減らしてください。
他の人が実行すると結果が違う
getActiveSheet
や
getActiveRange
は、実行時に開いている場所へ依存します。チームで使う業務処理は、
getSheetByName
で対象シートを指定し、入力欄と出力欄を保護し、想定外のシート名なら処理を止める仕組みを入れます。実行者によって権限が違う点も忘れないでください。
実務で役立つマクロ設計!一回の便利より百回の安全を優先する
良いマクロは、短いコードではなく、間違いにくく、直しやすく、引き継ぎやすいマクロです。特に会社のデータを扱うなら、処理結果だけでなく、失敗時の戻し方まで設計します。
| 設計の観点 | 弱い作り方 | 強い作り方 |
|---|---|---|
| 対象範囲 | 開いているシートを無条件で処理します。 | シート名、列名、最終行を確認してから処理します。 |
| 削除処理 | 元データを直接消します。 | 複製、退避、ログ記録をしてから変更します。 |
| エラー対応 | 止まっても理由がわかりません。 |
try
と catch
で利用者向けの説明を表示します。 |
| 共同利用 | 作成者しか意味を理解できません。 | 関数名、説明、変更履歴、担当者を残します。 |
| 機密情報 | APIキーをセルやコードへ直接書きます。 | 権限を絞り、プロパティや管理された保管方法を使います。 |
特に削除、上書き、メール一斉送信は、いきなり本番で動かさないでください。最初は「削除予定」列へ印を付けるだけ、「送信予定」シートへ出力するだけにし、人が確認してから確定処理へ進む二段階方式が安全です。
また、処理の最初に入力件数、最後に処理件数を記録すると、異常に気づきやすくなります。「完了しました」だけではなく、「対象百二十件、更新百十八件、未処理二件」と表示するほうが、実務では圧倒的に役立ちます。
Googleスプレッドシートのマクロに関する疑問解決
Googleスプレッドシートのマクロは無料で使えますか?
個人のGoogleアカウントでも基本的なマクロ記録とAppsScriptを利用できます。ただし、サービスごとの一日上限、実行時間、メール送信数などに制限があります。GoogleWorkspaceの契約種類によって一部の上限や管理機能が異なります。
スマートフォンだけでマクロを作れますか?
マクロの記録やAppsScriptの編集は、パソコンのブラウザで行うのが基本です。スマートフォンは表示や簡単な編集には便利ですが、自動化の作成、権限確認、デバッグはパソコンで進めるほうが確実です。
マクロを別のスプレッドシートでも使えますか?
記録したマクロは、原則として作成したスプレッドシートにひもづきます。別ファイルで使うには、スクリプトをコピーして調整するか、共通処理をライブラリや別の仕組みに整理します。マクロ定義は単独のスクリプトやウェブアプリへ置くだけでは、そのまま各シートのマクロとして認識されません。
マクロとカスタム関数は同じですか?
違います。マクロはメニューやショートカットから処理を実行し、セルの書式やデータを変更できます。カスタム関数は、セルに
=関数名()
の形で入力して値を返す仕組みです。カスタム関数は計算向きで、他のセルを自由に書き換える用途には向きません。
マクロでGmailを自動送信できますか?
AppsScriptへ発展させれば可能です。ただし、送信数の上限、宛先ミス、個人情報、権限、社内ルールを確認してください。最初は自分宛て、次に少人数、最後に本番という順でテストし、送信済みフラグと実行ログを残すことが重要です。
生成AIにGASを書かせても大丈夫ですか?
下書きとして使うのは有効ですが、そのまま本番で実行しないでください。対象範囲、削除処理、外部送信、権限、実行回数を人が確認します。サンプルデータでテストし、処理前後の件数と合計値が一致するか検証してください。
どの作業から自動化すると効果が出ますか?
毎日または毎週くり返し、手順が決まっていて、失敗しても元に戻せる作業から始めます。見出し整形、不要な空白の削除、並べ替え、定型レポートの作成などが適しています。判断が毎回変わる仕事や、例外だらけの作業は、先に手順そのものを整理してください。
まとめ!今日の単純作業を一つだけマクロに変えよう
Googleスプレッドシートのマクロは、プログラマーだけの機能ではありません。最初の一歩は、「拡張機能」、「マクロ」、「マクロを記録」を開き、いつも行っている操作を一つ覚えさせるだけです。
成功の順番は、小さく記録する、参照方法を選ぶ、別データで試す、コードを読む、一括処理へ直す、最後にトリガー化するです。ExcelのVBAを移行するときも、一行ずつ変換するのではなく、業務の目的へ分解してGASで組み直します。そして2026年の今は、Geminiに案を作らせ、再現性が必要な部分をマクロへ固定する分業が現実的です。
まず今日、五分以上くり返している作業を一つ選んでください。いきなり会社全体を自動化する必要はありません。見出しを整えるだけでも、毎週続けば時間が戻ってきます。小さなマクロを安全に育てることが、ミスを減らし、考える仕事へ時間を戻す最短の一歩です。




コメント