イラストレーター兼作曲家のサイト

スプレッドシートでマクロが使えない?原因と解決方法を業務ツールを作成するプロが徹底解説

 
スプレッドシートでマクロが使えない?原因と解決方法を業務ツールを作成するプロが徹底解説の記事アイキャッチ画像
本サイトにはプロモーションを含みます
この記事を書いている人 - WRITER -

 

Googleスプレッドシートには「マクロ」という便利な自動化機能があります。

Excelのマクロと同じように業務効率化ができる便利機能
というイメージを持たれている方も多いでしょう。

 

しかし、実際に使おうとすると

  • 「マクロが記録できない」
  • 「実行できない」
  • 「グレーアウトして押せない」

といったトラブルに遭遇する人が少なくありません。

特に、Excelのマクロ(VBA)を使い慣れた人にとって、
Googleスプレッドシートのマクロの仕組みは少し特殊に感じるでしょう。

本記事では、
スプレッドシートでマクロが使えない原因とその解決方法を、初心者にも分かりやすく解説します。

 

Table of Contents

スプレッドシートのマクロとは?仕組みを簡単に解説

 

Excelのマクロ(VBA)との違い

 

Excelのマクロは「VBA(Visual Basic for Applications)」という専用言語で書かれていますが、

スプレッドシートのマクロは「Google Apps Script(グーグルアプススクリプト)」
というJavaScriptベースの言語で動いています。

つまり、似たような自動化機能ではありますが、内部的には全く別の仕組みです。

 

マクロはApps Scriptの記録機能

 

スプレッドシートで「マクロを記録」すると、実際には裏でGoogle Apps Scriptが自動生成されます
そのため、マクロが動かないときはスクリプトのエラーや権限設定が原因であることが多いのです。

 

なお、よく混同されがちですが、マクロとVBA、Google Apps Scriptは厳密には違う意味です。

 

マクロとは

 

ExcelやGoogleスプレッドシートの一連の処理をひとまとめにして、
自動や任意のタイミングで実行できるような機能のことです。

みなさんにもスプレッドシートで何度も行う決まりきった操作というのがあるかと思います。

そういった操作をプログラムを書いたり、
マクロの記録機能を使ったりしてまとまった一つの処理として実行できるようにしよう
というのがマクロです。

 

ちなみにマクロは、ExcelやGoogleスプレッドシートだけでなく、
他の表計算ソフト以外のツールでも使うことができるものがあります。

例えば、テキストエディターで有名やサクラエディタやエンジニアにはおなじみのTeratermなんかもマクロが使えます。

 

VBAとGoogle Apps Scriptは?

 

じゃあ、VBAとGoogle Apps Scriptは何なの?

という話ですが、これらはExcelとGoogle スプレッドシートで使えるプログラミング言語です。

このようにマクロとVBA、Google Apps Scriptは本来は別の意味を持つのですが、
作成されたマクロは、VBAやGoogle Apps Scriptで書かれていますので、

文脈によっては、
マクロとVBA、Google Apps Scriptは同じようなニュアンスで使われることがある
ということなんですね。

 

マクロ記録の基本的な使い方

 

さて続いては、Googleスプレッドシートで使用できるマクロの記録機能について説明します。

 

Google Apps Scriptといったプログラミング言語が分からなくても、
シンプルな定形作業であれば、このマクロの記録で効率化できてしまいます。

  1. メニューの「拡張機能」→「マクロ」→「マクロを記録」をクリック
  2. 実行したい操作を行い、「記録を保存」
  3. マクロ名を入力して保存すると、後で「マクロの実行」から呼び出せます

 

スプレッドシートでマクロが使えない主な原因

 

ここからは、今回のブログ記事のメインでもある
Googleスプレッドシートでマクロが使えないよくある原因について紹介していきますね!

 

① マクロ機能が有効になっていない

 

一部のユーザーは、スプレッドシートのメニューに「マクロ」が表示されていない状態です。

これは、スプレッドシートがGoogle形式で開かれていないか、管理者によって制限されている可能性があります。

 

② ファイルがExcel形式(.xlsx)のまま

 

最も多い原因がこれです。

スプレッドシートでExcelファイル(.xlsxや.xls)を開いただけの状態では、マクロ機能は使えません。

マクロを使うには、ファイルをGoogleスプレッドシート形式に変換する必要があります。

 

③ スクリプト実行の権限を許可していない

 

初めてマクロを実行するとき、Googleアカウントの承認を求められます。

ここで「許可しない」を選んでしまうと、スクリプトが実行できず「マクロが使えない」状態になります。

 

承認を求められた際に、怪しいプログラムとか
安全でないプログラムといったニュアンスの書かれ方をしているので、ビビってしまいますよね笑

ですが、自分が作成したスクリプトであれば許可するを選択していただいて大丈夫です!

ただし、プログラム名が自分で作成したものと合っているかは必ず確認するようにしましょう。

 

④ 共有設定や編集権限の制限

 

スプレッドシートが他人と共有されている場合、
「閲覧者」や「コメント可」権限のユーザーはマクロを実行できません。

マクロを動かすには、「編集者」権限が必要です。

 

⑤ 関数やシート名の変更でエラーが発生している

 

マクロ内で指定しているシート名やセル範囲が変更されると、スクリプトが参照できずにエラーになります。

特に、マクロ記録後にシート名を変更した場合は要注意です。

 

⑥VBAで書かれたマクロを実行しようとしている

 

先程も記載しましたが、ExcelではVBA、スプレッドシートではGoogle Apps Scriptが使用できます。

 

そうなんです、
VBAとGoogle Apps Scriptは別のプログラミング言語ですので、スプレッドシートでVBAを実行することはできません

この場合は、VBAで書かれたプログラムをGoogle Apps Scriptに作り変える必要があります

 

VBAをGoogle Apps Scriptに書き換えるには?

 

簡単なプログラムであれば、生成AIに「VBAをGoogle Apps Scriptに書き換えて」

と依頼することで、上手く動作するようになるかもしれません。

ただ、お使いのスプレッドシートの構成やVBAで使用しているライブラリなど
様々な条件があるので、生成AIでプログラムを変換しただけでは上手くいかないことも多いです。

そういった場合は、
ランサーズやCrowdWorksでVBAをGoogle Apps Scriptに変換する依頼をかけてみるのも良いでしょう。

ランサーズは、フリーランスのエンジニアが多いので、
企業経由でプログラムの作成依頼をするよりは、費用を抑えて依頼することが可能です。

登録は無料ですので、とりあえず登録してみて、
他の人や企業がどのような募集をしているか覗いてみるのも良いと思います!

 


クラウドソーシング「ランサーズ」

 
クラウドソーシング「ランサーズ」

 

当ブログにも依頼いただくことは可能です!

私、しんさんわーくす自身もVBAをGoogle Apps Scriptに書き換える案件の受付をしております!

普段から、企業の業務ツールのVBAやGoogle Apps Scriptを作成する機会が多いので、
お困り事がお役に立てる内容かもしれません。

 

過去にブログ分析のために作成したGoogle Apps Scriptのプログラムは記事でも
紹介しておりました。

もう手作業はいらない!Search Console APIでスプレッドシートに自動転記する設定手順

もう手作業はいらない!Search Console APIでスプレッドシートに自動転記する設定手順

 

ご相談は、先程もご紹介したランサーズ経由かブログのお問い合わせフォームからお気軽にご連絡ください!

 

ランサーズでのご依頼はこちらから!

ランサーズのプロフィール

 

ブログのお問い合わせフォームはこちらから!

ブログのお問い合わせフォーム

 

スプレッドシートのマクロが使えないときの解決方法

 

① ファイルをGoogleスプレッドシート形式に変換

 

  1. Googleドライブで対象のExcelファイルを右クリック
  2. 「Googleスプレッドシートで開く」を選択
  3. 自動的にGoogle形式に変換され、マクロ機能が有効になります

変換後は、メニューの「拡張機能」→「マクロ」が表示されているか確認しましょう。

 

② スクリプト実行権限を許可する

 

初回実行時に出る「このアプリはGoogleで確認されていません」などのメッセージは、Apps Scriptの承認要求です。

少し不安に感じるかもしれませんが、
自分が作成したマクロであれば「詳細」→「安全ではないページに移動」→「許可」で問題ありません。

 

③ 共有設定を「編集者」に変更

 

共同編集者がマクロを実行できない場合は、共有設定を見直しましょう。

「共有」→対象ユーザーを「編集者」に変更することで実行可能になります。

 

④ マクロの修正・再記録でエラーを解消

 

スクリプトの中身を確認しても原因が分からない場合は、一度マクロを削除して再記録してみるのが手っ取り早い方法です。

複雑なマクロでなければ、再記録によって自動的に正しいスクリプトが生成されます。

 

⑤ 「Apps Script」エディタでエラー内容を確認

 

マクロが実行されない場合、「拡張機能」→「Apps Script」を開くと、エラー内容が表示されます。

特に「TypeError」や「Cannot read property〜」などのメッセージが出ているときは、変数やセル参照に問題があることが多いです。

 

よくあるエラーメッセージと対処法

 

エラーメッセージ
原因
解決策
マクロを記録できません
Excel形式で開いている
Googleスプレッドシート形式に変換
承認が必要です
権限未許可
スクリプトの許可を再設定
実行に失敗しました
コードエラー
Apps Scriptでデバッグ
共有ファイルでマクロが実行できません
権限不足
編集者に変更

 

スプレッドシートでマクロを使う際の注意点

 

他ユーザーの環境では動かないことがある

 

→ マクロはアカウント単位で動作するため、別のユーザーが実行するには再承認が必要です。

 

ブラウザやネットワークの制限に影響される

 

→ 企業ネットワークではスクリプト通信がブロックされる場合も。

 

Apps Scriptには実行時間制限がある

→ 無料アカウントでは約6分まで。長時間の処理は関数分割が必要です。

 

マクロが使えないときの代替方法

 

① スクリプトトリガーで自動化

 

マクロの代わりに「トリガー」を設定すれば、特定の時間や操作で自動実行できます。

「拡張機能」→「Apps Script」→「トリガー」から設定可能です。

 

② Google Workspaceアドオンを使う

 

既存のアドオンを使えば、マクロなしでも同等の自動化が可能な場合があります。

「Autocrat」や「Power Tools」などが人気です。

 

③ 関数+フィルターで代用

 

単純な並べ替えや計算なら、マクロを使わずに関数で十分対応できます。

「QUERY」関数や「FILTER」関数を覚えると、手作業を大幅に減らせます。

 

まとめ:スプレッドシートのマクロが使えないときは設定を見直そう

 

スプレッドシートでマクロが使えない原因の多くは

  • ファイル形式がExcelのまま
  • 実行権限の未許可
  • 権限・設定ミス

といった原因が多いです。

一度確認して正しい設定にすれば、マクロは安定して動作します。

特に、Googleスプレッドシート形式への変換とApps Script権限の許可は最初に確認しておくべきポイントです。
マクロを使いこなせば、日々の作業を自動化し、業務効率を大幅に向上できます。

もし「スプレッドシートでマクロが使えない」と悩んでいるなら、今回の記事の内容を順番に試してみてください。

この記事を書いている人 - WRITER -

Copyright© 深山は美山 , 2025 All Rights Reserved.