COLUMN

Excelのマクロ(VBA)が動かなくなったとき|直す・移す・やめるの判断と、GASへの置き換えの考え方

システム開発

Excelのマクロ(VBA)が動かなくなったとき|直す・移す・やめるの判断と、GASへの置き換えの考え方

結論:Excelのマクロ(VBA)が動かなくなったら、いきなり作り直さず、まず「なぜ止まったか」を切り分けます。公式に書かれている代表的な原因は、インターネットから届いたファイルのマクロが既定でブロックされることなどで、これは設定で動くようになる場合があります。そのうえで、①直す(原因が設定やごく小さな修正)、②移す(今後も必要で、仕組みを変えたほうが楽)、③やめる(もう使っていない・手作業で十分)の3つから選びます。GAS(Google Apps Script)へ移すなら、先に「暗黙のルール」を書き出し、困っている作業を1つだけ、小さく始めるのが安全です。

「昔、詳しい人が作ってくれたマクロが、パソコンを入れ替えたら動かなくなった」「作った担当者が辞めて、誰も中身を分からない」。こうしたご相談は、中小企業で珍しくありません。マクロは便利ですが、作った人の頭の中にだけルールが残りやすく、止まったときに初めて存在の大きさに気づくことが多い仕組みです。このコラムでは、動かなくなったときの考え方と判断の順番を、プログラミングの経験がない方にも分かるように整理します。なお、細かい操作画面はExcelのバージョンや会社の設定によって異なるため、手順は書きません。迷ったときは、公式ページと社内のIT担当者・管理者にご確認ください。

マクロが動かなくなる、よくある原因は何ですか?

代表的な原因は、「マクロそのものが壊れた」とは限らず、Excel側の安全のための仕組みや、使っている環境の変化です。Microsoftの公式ページ(2026年11月6日に確認)に書かれている内容を中心に整理します。

こんな症状 考えられる原因 公式に書かれていること
開いたら「セキュリティ リスク」と出て、マクロが動かない メール添付・ブラウザでのダウンロードなど、インターネット由来のファイルに付く印(Mark of the Web) インターネット由来のファイルのマクロは、既定でブロックされる(Windows版のExcelなどが対象)。解除は、ファイルのプロパティの「許可する」などで行う
共有サーバーに置いたファイルだけ動かない 共有フォルダをIPアドレスなどで開いており、信頼されていない場所と判断された ネットワーク共有でも、信頼済みと識別されないとブロックされる場合がある
「管理者がマクロの使用を制限しています」と出る 会社の設定(ポリシー)でマクロが制限されている 管理者がマクロを制限できる。ご自身では解除できない場合がある
パソコンの入れ替え後に、エラーで止まる Excelが64ビット版になった。古いマクロが、Windowsの機能を呼び出す書き方(Declare文)を含んでいる Office 2019とMicrosoft 365から、既定は64ビット版。古い書き方のままだと、64ビット版でエラーになることがある
ブラウザ(Web版Excel)で開くと動かない Web版Excelは、マクロの作成・実行・編集ができない マクロはファイルの中に残るので、デスクトップ版で開けば扱える

1行目の「インターネット由来のファイルのブロック」は、Microsoftの公式ページによると、悪意のある人がマクロを使ってウイルスなどを送り込む手口が多いため、既定の動きが変わったものです。Windows版のExcelでは、2022年から順に適用されています。以前は「コンテンツの有効化」で動かせたのに、あるときから動かなくなった、という場合は、これが理由のことがあります。ただし、解除してよいのは、中身と出どころが確かなファイルだけです。公式も、よく分からないファイルのマクロは有効にしないよう案内しています。

また、古いマクロを64ビット版で使うと止まる件は、書き換えが必要になる場合があります。公式のページでは、この問題の原因として、Windowsの機能を呼び出す部分(Declare文)が挙げられています。自分のマクロが当てはまるかは、コードを読める人に確認してもらってください。ご自分で触る前に、必ずファイルのコピーを取ってください。バックアップの考え方は、バックアップの3-2-1ルールが参考になります。

直す・移す・やめる、どう判断しますか?

判断は、「今も必要か」「原因は何か」「作った人がいるか」の順に考えると整理しやすくなります。次の図は、その流れを簡単にまとめたものです。

図1:直す・移す・やめるの判断フロー

① 直す ② 移す(作り直す) ③ やめる
向いている場面 原因が、ブロックや設定、小さなエラー。仕組みは今のままで困っていない 今後も必要だが、担当者がいない・複数人で使いたい・パソコンに縛られたくない 最近は使っていない。手作業で十分に終わる。目的がなくなった
かかる手間 小さいことが多い(ただし中身が分からないと、直せない場合もある) 作り直しの手間がかかる。ルールの整理が先に必要 ほぼなし。やめる前の確認が必要
先に確認すること コピーを取る/原因を切り分ける/直したあと誰が見るか 手順とルールの書き出し/今の結果と並べて確認できる状態 本当に誰も使っていないか/月末・年度末だけ使うことはないか
注意点 直しても、また同じ人頼みになる 「同じものを別の道具で作る」だけでは、効果が小さい やめたあと、必要になったときに戻れる記録を残す

大切なのは、「壊れたから作り直す」と決めつけないことです。原因が前の表のような設定の問題なら、直すほうがずっと早く済みます。一方で、直すたびに「誰かに頼まないと動かない」状態が続くなら、それ自体が課題です。属人化の考え方は、業務の属人化を解消する方法にまとめています。

もう一つ、見落としやすいのが「やめる」という選択肢です。たとえば(説明用の例です)、5年前に作ったマクロが、実は今の業務では年に1回しか使われておらず、手作業で30分あれば終わる、ということもあります。その場合は、移行の費用をかけるより、手順書を1枚書いて終わりにするほうが合理的かもしれません。「いつ、誰が、何のために使っているか」を、使っている人に聞くところから始めてください。

GASに移すと、何が変わりますか?

GAS(Google Apps Script)は、Googleのスプレッドシートやメールなどを自動で動かす仕組みです。ExcelのVBAとは別の仕組みなので、「そのまま持っていく」のではなく「同じ目的を別の道具で作り直す」と考えるのが基本です。このコラムでは、VBAからGASへ自動で変換できることを前提にせず、作り直しとして見積もります。

図2:VBAとGASの比較

ExcelのVBA GAS(Googleスプレッドシート)
動く場所 主にパソコンのExcel(Windows版が中心)。Web版Excelでは実行できない Googleのクラウド。ブラウザから使える
決まった時刻に自動で動かす パソコンとExcelが開いている状態が前提になりやすい 時間を指定して、自動で動かせる(上限あり)
パソコン内のファイルや他のソフトの操作 得意なことが多い そのままでは移しにくいことがある
複数人での利用 ファイルの受け渡しになりやすい 同じ表を、複数人で同時に使いやすい
注意点 古い書き方、ブロック、バージョン差で止まることがある 実行時間などに上限がある。Googleアカウントの管理が必要

GASには、Googleの公式ドキュメント(2026年11月6日に確認)に、次のような上限が書かれています。

項目 一般アカウント(gmail.comなど) Google Workspace
1回の実行時間 6分 6分
トリガーの合計実行時間(1日) 90分 6時間
メール送信(宛先数・1日) 100 1,500(ドメイン外への宛先。ドメイン内は2,000)
カスタム関数の実行時間 30秒 30秒

データが非常に多いマクロは、1回6分では終わらない場合があります。また、公式には、上限は予告なく変更される場合があると書かれています。作る前に、最新の公式ページで確認してください。GASで集計を自動化する具体的な手順は、スプレッドシートの集計をGASで自動化するのコラムで紹介しています。

また、そもそも「データの量が増えて、表そのものが限界に近い」場合は、GASに移しても根本の解決にならないことがあります。Excel台帳が限界に近づく5つのサインに当てはまる場合は、表からアプリへ移す選択肢も合わせて考えてください。

移行で消えがちな「暗黙のルール」とは何ですか?

マクロを作り直すとき、最も事故が起きやすいのが、コードには書かれているのに、誰も覚えていないルールです。作り直したら、数字が微妙に合わなくなった。その多くは、この「暗黙のルール」の取りこぼしが原因です。移す前に、次の観点で書き出してください。

書き出す観点 たとえば(説明用の例です)
入力のルール この列が空欄の行は、集計から外す/金額は税込で入力されている
計算のルール 端数は切り捨て/特定の取引先だけ、別の掛け率を使う
例外のルール 月の途中で変わった担当者は、変更日で分ける/締め日が休日なら前営業日
出力・送付のルール 結果は、このシートのこの位置に貼る/誰に、どの形式で送る
失敗したときのルール エラーが出たら誰に連絡する/前回の結果に戻す方法
実行のタイミング いつ、誰が押すのか/前の作業が終わっていることが条件

書き出す方法のコツは3つです。①マクロを使っている人に、実際に作業を見せてもらい、画面を見ながら言葉にする。②過去の実行結果(出力された表)を数か月分取っておく。これが、あとで「新旧の答え合わせ」に使えます。③マクロのコードを読める人(または、社内ルールの範囲でAI)に、「各行が何をしているか」を日本語で説明してもらう。ただし、顧客名や個人情報などを、AIにそのまま貼り付けないでください。ダミーのデータにするのが安全です。社内ルールの作り方は、生成AIの社内ルールの作り方が参考になります。AIの説明も間違うことがあるので、必ず人が確認します。

小さく始める順番は、どうすればよいですか?

全部のマクロを一度に移す必要はありません。次の順番で、困っている作業を1つだけ選んで進めます。

  1. マクロの一覧をつくる:どのファイルに、どのマクロがあり、誰がいつ使っているかを書き出します。使っていないものは、ここで「やめる」候補になります。
  2. 止まった原因を切り分ける:ブロック、管理者の制限、64ビット、Web版での利用、のどれかを確認します。設定で直るなら、そこで終わりです。
  3. 直す・移す・やめるを決める:前の判断表で、1つずつ決めます。迷うものは、いったん「今のまま動かせる状態を保つ」でも構いません。
  4. 暗黙のルールを書き出す:移すと決めたものだけ、前の表の観点で書き出します。
  5. コピーで、新旧を並べて試す:本番のファイルのコピーで新しい仕組みを動かし、過去の結果と数字が合うかを確かめます。しばらくは、新旧の両方を動かして比べます。
  6. 切り替えと、担当・連絡先を決める:問題がなければ新しい仕組みに切り替え、失敗したときの連絡先と、手作業に戻す手順を残します。担当者は2人にするのが安心です。

外部の会社に頼む場合も、この順番で整理しておくと、見積もりや説明がスムーズです。依頼前の準備は、システム開発を依頼する前に準備することにまとめています。

マクロが動くかどうかは、Officeの版を入れ替えるときにも問題になります。Office 2021のサポートは2026年10月13日に終了しており、新しい版へ移る前にVBAマクロやアドインを試すことを、Microsoftも案内しています。進め方は、Office 2021のサポートが終了|中小企業がExcelを使い続ける前に確認することをご覧ください。

よくある質問

Q. 動かなくなったマクロは、まず何を確認すればよいですか?

最初に、表示されているメッセージと、いつから動かなくなったかを確認します。「セキュリティ リスク」や「管理者が制限」といった表示は、Microsoftの公式ページに書かれたブロックや制限の可能性が高いです。その場合は、ファイルの出どころが確かか、社内の管理者に確認してから、公式の案内に沿って対応してください。画面や手順はバージョンや会社の設定で異なります。

Q. マクロのブロックを解除すれば、安全に使えますか?

解除すること自体は可能ですが、それで安全になるわけではありません。公式も、出どころが確かなファイルだけを対象にするよう案内しています。メールで受け取ったファイルや、作成者が分からないファイルは、有効にしないでください。社内の管理者がいる場合は、会社として信頼する場所を決める方法もあります。

Q. VBAをGASに自動で変換できますか?

このコラムでは、自動で変換できることを前提にしていません。公式の資料で、そうした機能を確認できていないためです。作り直しとして、ルールを書き出し、新旧の結果を並べて確認する進め方をおすすめします。AIにコードを書いてもらう場合も、コピーで試し、結果を確認するところまでが必要です。

Q. GASに移すと、費用は抑えられますか?

GASはGoogleアカウントがあれば使い始められますが、一般アカウントとGoogle Workspaceで上限が異なります。また、作り直しにかかる時間や、あとで直す手間は別にかかります。移す価値があるかは、「今の作業に毎月どれだけの時間がかかっているか」と比べて判断してください。SaCの時間削減シミュレーターで、目安を試算することもできます(参考値で、効果を保証するものではありません)。

Q. 担当者がいなくなり、マクロの中身が誰も分かりません。どうすればよいですか?

まず、ファイルのコピーを取り、そのコピーで動作を観察します。何を入力すると、何が出力されるかを記録するだけでも、暗黙のルールを書き出す材料になります。そのうえで、今も必要な作業かを使っている人に確認し、必要なものだけ、直す・移すを検討します。中身を読み解く作業は時間がかかるため、無理せず外部に相談することも選択肢です。

まとめ:まず切り分ける。移すなら、先に書き出す

マクロが動かなくなったときは、①マクロの一覧をつくる、②止まった原因を切り分ける、③直す・移す・やめるを決める、④移すなら暗黙のルールを書き出す、⑤コピーで新旧を並べて試す、⑥切り替えと担当・連絡先を決める、の順番で、困っている作業を1つだけ選んで進めます。「壊れたから作り直す」ではなく、「今も必要か」と「誰が面倒を見るか」を先に決めることが、遠回りのようで近道です。なお、ブロックの仕様やGASの上限は変わることがあります。このコラムの内容は2026年11月6日時点の公式情報にもとづくため、実際の対応の前には、最新の公式ページをご確認ください。

「どのマクロを直し、どれを移し、どれをやめるのか整理したい」「GASで足りるのか、アプリにするのかも含めて、どこまで置き換えるかを考えたい」という場合は、SaCのシステム開発で、お使いの表や手順を確認しながら、アプリにするかどうかも含めて整理するご相談ができます(マクロの修正・移行の対応範囲は、お問い合わせの際にご確認ください)。小規模開発は、業務を1つに絞って10万円(税別)から、Excelのデータ移行にも対応しています。業務全体の進め方から相談したい場合は、AIコンサルティング(顧問型は月額8万円から、初回のご相談は無料)もご利用いただけます。まずは、お問い合わせから、お気軽にご連絡ください。

コラム一覧へ

気になることがあれば、まずは、お話をお聞かせください。

相談する