
AIに書かせたマクロが動かないとき、まずコードを疑います。でも公式ドキュメントを読むと、ファイルの出どころだけでマクロがブロックされる仕組みがありました。コードが正しくても動かない場面があります。
この記事では、Microsoft LearnとMicrosoftの公式ヘルプに書かれている内容だけを並べ、確認する順番に整理します。内容は公式ページで確認したものです。仕様と既定値は更新されるため、運用を決める前には原典で最新の記載をご確認ください。なお、セキュリティの設定を変更する場合は、自社の情報システム部門の方針に従ってください。
結論:直す場所は、コードの外にある
先に結論を置きます。AIに書かせたマクロが動かないとき、原因はコードの中とコードの外に分かれます。そして公式ドキュメントに条件が明記されているのは後者のほうでした。外側を先に潰すほうが、はるかに早く片づきます。
出どころで、実行の可否が決まる
Microsoft Learnには、変更の理由がはっきり書かれています。VBAマクロは、悪意のあるアクターがマルウェアやランサムウェアを展開するための一般的な方法です。そのため、Officeのセキュリティを強化するために、インターネットからファイル内のマクロをブロックするようにOfficeアプリケーションの既定の動作を変更しています。つまり、既定でブロックされるのが現在の動作です。コードの品質とは無関係に止まります。AIに書かせたコードを貼り付けたファイルを、メールで自分に送って開いた。この時点で条件に当たります。
確認の順番は4つ
順番を決めておきます。1つ目、ファイルの出どころ。インターネット経由かどうかです。2つ目、置き場所。信頼できる場所か、ネットワーク共有かで変わります。3つ目、Excel側の設定。編集そのものが始まらない条件があります。4つ目、ファイルの形式と状態。ここも公式に原因が挙げられています。この4つを確認してから、はじめてコードを読む。順番を逆にすると、正しいコードを何度も書き直すことになります。以降の節で、公式の記載を引きながら見ていきます。
コードを読む前に見る4つ
全部、コードの外側の話。
マクロは、既定でブロックされている
まず前提です。以前は「コンテンツを有効にする」を押せば動きました。いまは違います。何を基準にブロックされるのかが、公式ドキュメントに順を追って説明されています。仕組みを知ると、対処の順番が見えてきます。
ファイルに印が付く
Microsoft Learnには、判定の流れが書かれています。まず入口がこうです。ユーザーは、インターネットから取得したマクロを含むOfficeファイルを開きます。たとえば、電子メールの添付ファイルなどです。ファイルには Mark of the Web(MOTW)があります。この印が、判定の起点になります。ダウンロードしたファイル、メールで受け取ったファイル、チャットで送られてきたファイル。いずれも印が付く可能性があります。AIにコードを書かせたあと、自分宛にメールで送って別の端末で開く、という手順を踏んでいるなら、ここが原因です。
信頼できる場所なら、そのまま動く
続きにこうあります。ファイルが信頼できる場所からのファイルの場合は、マクロが有効になっている状態でファイルが開きます。ファイルが信頼できる場所からでない場合、評価は続行されます。つまり、信頼できる場所に置いたファイルは、判定を通過します。この「信頼できる場所」はOfficeの設定で指定するフォルダのことです。社内で定型的にマクロを使うなら、置き場所を決めてそこを指定しておくのが基本の形になります。ファイルごとに解除するより、場所で決めるほうが運用が楽です。
ポリシーが上にある
もう1つ、組織の設定が効く層があります。公式には、マクロが許可されているかブロックされているかを確認するために、ポリシーがチェックされます。ポリシーが[未構成]に設定されている場合、評価は次に進みますとあり、マクロがポリシーによってブロックされている場合、マクロはブロックされますとされています。さらに、組織はインターネットポリシーからOfficeファイルでマクロを実行できないようにブロックするマクロを使用して、ユーザーが誤ってマクロを含むインターネットからファイルを開くのを防ぐことができますとも書かれています。会社の方針で全面的に止めている可能性があるということです。
解除の方法は3つ書かれている
ブロックされた場合の対処も、公式に並んでいます。3通りあり、どれを選ぶかで運用の手間がかなり変わります。自分ひとりで使うのか、チームで使い回すのかで、適した方法がはっきり違ってきます。順に見ていきます。
ファイル単位で解除する
1つ目が、ファイルごとの解除です。公式にはファイルの[プロパティ]ダイアログの[全般]タブの[ブロック解除]チェックボックスをオンにするとあります。ファイルを右クリックしてプロパティを開き、下のほうにあるチェックを入れる、という操作です。1ファイルだけなら、これがいちばん早い。もう1つ、同じくファイル単位の方法としてPowerShellでブロック解除のコマンドレットを使用するが挙げられています。まとめて複数のファイルを処理したい場合は、こちらが向きます。どちらも、対象のファイルを自分で判断して解除する形です。
場所で解除する
2つ目が、フォルダ単位です。公式にはフォルダーを信頼できる場所に指定すると書かれています。関連して、テンプレートファイルを信頼できる場所に保存する、アドインファイルを信頼できる場所に保存するという記載もあります。毎回同じフォルダで作業するなら、こちらが圧倒的に楽です。ファイルを作り直すたびにプロパティを開く必要がなくなります。ただし、その場所に置いたものはすべて信頼される、ということでもあります。作業用のフォルダと、受け取ったファイルの置き場所は分けてください。
選び方の目安
使い分けの目安を置いておきます。一度きりの作業なら、ファイル単位の解除。受け取ったファイルを1回動かすだけなら、プロパティから解除するのが素直です。繰り返し使うなら、信頼できる場所。自分が作ったマクロを日常的に回すなら、置き場所を固定して指定しておきます。そして、どちらも社内の方針を確認してからにしてください。公式にも、組織のポリシーが上位にあると書かれています。設定を変えられない環境なら、情報システム部門に相談するのが先になります。手順の共有は、そのあとです。
社内の共有フォルダも対象になる
見落としやすいのがここです。インターネットから取ってきたファイルだけの話だと思っていると、社内の共有フォルダで詰まります。公式には、その条件がかなり明確に書かれていました。社内だから大丈夫、では通りません。
ゾーンによって扱いが変わる
Microsoft Learnには、こうあります。ローカルイントラネットゾーンに存在しない、または信頼されたサイトではないネットワーク共有上にファイルがある場合、そのファイル内のマクロはブロックされます。つまり、社内のファイルサーバーであっても、ゾーンの設定次第ではブロックされるということです。社内だから安全、という前提では動きません。とくに、別拠点のサーバーや、あとから追加された共有先は設定が抜けていることがあります。同じマクロが、自分の端末では動いて同僚の端末では動かない。この症状は、ここから起きます。
過去に開いたファイルは、扱いが違う
もう1つ、経過措置のような記載があります。既定の動作でこの変更が行われる前にユーザーがファイルを開き、信頼バーから[コンテンツを有効にする]を選択した場合、ファイルが信頼されていると見なされるため、マクロが有効になります。つまり、昔から使っているファイルは動くのに、新しく作ったファイルは動かないという状況があり得ます。これも「自分の環境では動く」の原因になります。比較するなら、新しく作ったファイル同士で比べてください。古いファイルを基準にすると、条件が揃いません。
Officeの種類でも違う
最後に、製品による違いです。公式にはOffice LTSC 2021 や Office 2019 などの永続的なバージョンのOfficeの場合、この手順は既定の動作への変更の影響を受けませんと書かれています。買い切り型の古いバージョンを使っている環境では、ここまでの説明が当てはまらない場合があるということです。社内に複数のバージョンが混在しているなら、どのバージョンで検証したかを記録しておくと、あとの切り分けが楽になります。「動きました」という報告だけでは、条件が分かりません。
そもそも編集が始まらない条件
ここからは、マクロの実行ではなく、AIにブックを編集させる側の条件です。Excelの公式FAQに制限事項として挙げられており、このうち1つは設定ひとつで直ります。知らないと原因にたどり着けないので、先に見ておきます。
計算オプションが自動でないと、動かない
公式FAQの制限事項に、こう書かれています。計算の設定:Copilotの編集は、[計算オプション]が[自動]に設定されている場合にのみサポートされます。1行ですが、影響は大きい。重い集計表を扱う人は、再計算を止めるために計算オプションを手動にしていることがあります。その状態だと、Copilotの編集が動きません。そして、この設定はブックに保存されるので、受け取ったファイルが手動になっていることもあります。編集を頼んでも何も起きないなら、数式タブの計算方法を先に見てください。数秒で確認できます。
保存すると、全員に見える
もう1つの制限事項も、運用に関わります。ブックの変更の直接:Copilotの変更をブックに保存すると、共同編集セッションのユーザーを含め、ファイルにアクセスできるすべてのユーザーがそれらの変更を確認できます。つまり、試しに変えてみる、が共有相手にそのまま見えます。対処も書かれていて、変更を元に戻す必要がある場合は、変更を元に戻すか、以前のバージョンを表示できますとされています。共有中のファイルで試すなら、コピーを作ってから。これは基本ですが、AIに編集させるときは変更の量が大きくなりやすいので、より効いてきます。
どこまで頼めるか
できることの範囲についても記載があります。公式は、Excel の Copilot では、ワークシートの編集、データの生成と変換、データの強調表示、並べ替え、フィルター処理、Webからの情報の取得、作業ファイルの検索による応答のコンテキストの提供など、増え続ける機能セットをサポートしていますとしています。また、単純な数式、単一のピボットテーブル、基本的なグラフを超える、複雑な複数ステップのタスクに最適ですとも。1つの数式を作るだけなら、わざわざ編集を頼む必要はないという読み方もできます。手順が複数にまたがる作業でこそ効く、という位置づけです。
ファイルの形式と、チェックアウト
「サポートされていないファイルの状態」というメッセージが出ることがあります。これも公式に原因が2つ挙げられていて、どちらもファイル側の話でした。心当たりを順に確認できるので、公式の記載をそのまま引いておきます。
チェックアウト中は使えない
公式FAQには、こうあります。考えられる原因の1つは、ファイルがSharePointでチェックアウトされていることです。ファイルをチェックインし直し、閉じて、Excelでもう一度開きます。もう一度チェックできない場合は、そのファイルを Excel for the web で開きます。チェックアウトは、他の人が編集できないようにする仕組みです。自分がチェックアウトしたまま忘れている、というのはよくあります。まずチェックインし直す。それで直らない場合の回避策として、ブラウザ版で開く方法が案内されています。
組織の設定で、恒常的に使えない場合もある
さらに踏み込んだ記載があります。組織でSharePointでの編集にチェックアウトが必要な場合、WindowsまたはMac上のExcelのCopilotは、そのサイトのファイルでは機能しません。これらのファイルで Excel for the web を引き続き使用できます。これは一時的な状態ではなく、サイトの設定そのものです。該当するサイトのファイルでは、デスクトップ版のCopilotは使えない。回避策はブラウザ版を使うことだと明記されています。自分の環境だけ動かない、と悩む前に、そのサイトの設定を確認する価値があります。
形式が古いと、対象外になる
2つ目の原因が形式です。もう1つの原因としては、Strict Open XML スプレッドシートなど、サポートされていないファイル形式が考えられます。Excelブック(.xlsx)などの最新形式でファイルを保存します。古いテンプレートを使い回していると、形式が現行のものでないことがあります。名前を付けて保存で、形式を選び直す。これだけで直る場合があります。なお、マクロを含むブックは拡張子が変わるので、マクロを残したいのか、形式を新しくしたいのかを先に決めてから保存してください。
生成されたコードは、検証してから使う
最後に、コードそのものの扱いです。公式には、生成される内容についての注意と、使うモデルを選べることが書かれていました。どちらも、実務での使い方に直結する内容になっているので、最後に確認しておきましょう。
不正確な可能性がある、と明記されている
公式FAQには、こうあります。Copilotは分析情報と数式を生成し、流暢で文法的に正しい言葉で説明しますが、内容が不正確または不適切である可能性があります。Copilotを利用する前に、Copilotによって作成されるあらゆるものを確認、編集、検証できます。ここで効くのが流暢で文法的に正しい言葉で説明しますという部分です。説明が丁寧だと、正しそうに見えます。説明の分かりやすさと、結果の正しさは別です。マクロのように実際にデータを書き換えるものは、コピーで試してから本番に当ててください。
モデルを切り替えられる
あまり知られていない記載もあります。Excel の Copilot では、ブックの編集に Anthropic の Claude モデルと OpenAI の GPT モデルがサポートされています。モデルを切り替えるか、[自動]を選択してCopilotに選択させることができます。そして注意点として、選択はアクティブなセッションにのみ適用されます。Excelを閉じると、Copilotは既定のモデルに戻りますとされています。うまくいったモデルの設定は、次に開いたときには残っていません。結果が安定しないと感じたら、どのモデルで試したかを記録しておくと比較できます。
スキルは、新しい実行の仕組みではない
安全性についての記載も引いておきます。公式FAQには、スキルという機能についてスキルは、Excelに新しいコード実行メカニズムを導入するものではありません。コードの実行は既存のCopilot in Excelツールを通じて実行され、承認された環境内で動作しますと書かれています。続けて、スキルに含まれるスクリプトはExcelのCopilotで使用できるリソースであり、ExcelのCopilotが承認されたツールを通じて既に備えている機能を超える機能は提供しませんとも。できることの範囲は広がらない、という説明です。社内で説明を求められたときに、そのまま使える記載になります。
まとめ
AIに書かせたマクロが動かないとき、確認するのはコードの外です。Microsoft Learnには、VBAマクロは、悪意のあるアクターがマルウェアやランサムウェアを展開するための一般的な方法です。そのため、インターネットからファイル内のマクロをブロックするようにOfficeアプリケーションの既定の動作を変更していますと書かれています。インターネットから取得したマクロを含むOfficeファイル(たとえば電子メールの添付ファイル)には Mark of the Web(MOTW)があります。まず出どころを疑ってください。
解除の方法は3つ挙げられています。ファイルの[プロパティ]ダイアログの[全般]タブの[ブロック解除]チェックボックスをオンにする、PowerShellでブロック解除のコマンドレットを使用する、フォルダーを信頼できる場所に指定する。また、ローカルイントラネットゾーンに存在しない、または信頼されたサイトではないネットワーク共有上にファイルがある場合、そのファイル内のマクロはブロックされますので、社内の共有フォルダも対象になります。
AIに編集を頼む側にも条件があります。Copilotの編集は、[計算オプション]が[自動]に設定されている場合にのみサポートされます。また、ファイルがSharePointでチェックアウトされている場合や、Strict Open XML スプレッドシートなど、サポートされていないファイル形式の場合も動きません。そして内容が不正確または不適切である可能性がありますと明記されているので、コピーで試してから本番に当てる。この順番を守ってください。
よくある質問(FAQ)
コードは正しいはずなのにマクロが動きません
Microsoft Learnには、インターネットから取得したマクロを含むOfficeファイル、たとえば電子メールの添付ファイルにはMark of the Web(MOTW)があり、Officeの既定の動作としてマクロがブロックされると書かれています。ファイルの出どころをご確認ください。
ブロックを解除するにはどうすればよいですか
公式には3つの方法が挙げられています。ファイルの[プロパティ]ダイアログの[全般]タブの[ブロック解除]チェックボックスをオンにする、PowerShellでブロック解除のコマンドレットを使用する、フォルダーを信頼できる場所に指定する、です。設定の変更は社内の方針に従ってください。
社内の共有フォルダに置いたファイルでもブロックされますか
公式には、ローカルイントラネットゾーンに存在しない、または信頼されたサイトではないネットワーク共有上にファイルがある場合、そのファイル内のマクロはブロックされる、と書かれています。社内のファイルサーバーでも、ゾーンの設定によって扱いが変わります。
編集を頼んでも何も起きません
Excelの公式FAQには、制限事項として、Copilotの編集は[計算オプション]が[自動]に設定されている場合にのみサポートされる、と書かれています。計算方法が手動になっていないかをご確認ください。
「サポートされていないファイルの状態」と表示されます
公式FAQには、原因としてファイルがSharePointでチェックアウトされていること、またはStrict Open XML スプレッドシートなどサポートされていないファイル形式であることが挙げられています。組織でチェックアウトが必要な設定の場合、WindowsまたはMac上のCopilotはそのサイトのファイルでは機能せず、Excel for the web を使うよう案内されています。
生成されたコードはそのまま使ってよいですか
公式FAQには、Copilotは流暢で文法的に正しい言葉で説明するが、内容が不正確または不適切である可能性がある、利用する前に確認、編集、検証できる、と書かれています。データを書き換えるものは、コピーで試してから本番に当てるのが安全です。
自分の環境の条件を確かめる
既定の動作は更新されます。設定を変える前に、インターネットからのマクロは、Office で既定でブロックされます(Microsoft Learn)で最新の記載をご確認ください。