- 公開日:
スプレッドシートでマクロが使えない場合
Google スプレッドシートで「マクロが使えない…!」とお困りではありませんか?
スプレッドシートでは様々なことが原因となり、マクロ(スクリプト)が使えない、実行できないということが起きます。
この記事では、スプレッドシートでマクロが使えない場合の原因と対処法を分かりやすく紹介します。
スプレッドシートでマクロが使えない場合
Google スプレッドシートでマクロが使えない場合、以下のことが原因として挙げられます。
- コードに誤りがある
- 権限承認ができていない
- 発動条件を満たせていない
- 保護されたシートに使用している
- Excelのマクロを使用している
以下より、それぞれの原因における対処法を詳しく解説します。
コードに誤りがある
Google Apps Scriptでマクロを作成した場合、コードの記述に誤りがあると、マクロが実行できなかったり、意図した動作が出来なかったりします。
よくある記述ミスとしては、半角で英数記号を記述してなかったり、「getRange('セル名')」などのコードで取得するセル名を間違っていたりということがあります。
以下のように、Apps Scriptのエディタで実行ボタンを押すと、記述に誤りがある場所がエラーで表示されますので、確認して正しく記述しましょう。
発動条件を満たせていない
GASなどで作成したマクロ(スクリプト)をシート上で使用する場合、カスタムメニューで追加したり、トリガーを設定して発動します。
Apps Scriptのエディタで実行を押して使用する例もあるため、トリガー設定で発動するマクロをエディタで実行を押しても、実行ログにエラーが表示されます。
スクリプトの発動条件を確認し、正しい手順で使用しましょう。
以下の記事にて、GASを使用する方法を分けて紹介しています。
権限承認ができていない
GASで作成したスクリプトを実行するには、スプレッドシートを使用しているGoogle アカウントで実行するという権限を承認する必要があります。
以下の記事にて、GASで権限承認する方法を詳しく解説しています。
保護されたシートに使用している
共有されたスプレッドシートにGASでスクリプトを作成して使用する際、シートの一部が編集できないよう、シートのオーナーに保護されているとGASが正しく実行できない場合があります。
以下の記事にて、シートの保護を解除してもらう方法を詳しく紹介しています。
Excelのマクロを使用している
Microsoft ExcelでVBAマクロなどを利用して作成したスクリプトを、そのままGASに記述しても正しく動作しません。
スプレッドシートでは、Google独自のプログラミングでコンパイルなしで使用できるコードを採用しているため、Excelで使用するマクロとは異なります。
ほとんどの機能面でExcelと同じですが、使用できるマクロは異なりますので、スプレッドシート用のコードを理解して使用するようにしましょう。