マクロの守り中小企業のAI導入支援|Excelマクロ(VBA)の属人化の解消からExcelマクロ(VBA)の引き継ぎ 専門

コラム期限・仕様の変更

VBScript廃止の影響で、Excelマクロの何が止まるか社内のVBAから該当行を数える

VBScriptの廃止で影響を受けるExcelマクロは、.vbsのファイルを呼ぶ処理と、VBScriptのRegExp(正規表現)を使う処理の2つです。既定で無効になる段階はおおむね2026年か2027年で、Version 2508以降のMicrosoft 365ならRegExpはVBAの標準機能として動きます。マクロの守りが架空のブック8本を解析ツールで数えると6本に該当があり、「VBScript」の文字で探すだけでは2本しか見つかりませんでした。(2026年10月時点)

読み解きから直す・置き換えるまでの流れと費用はExcelマクロの引き継ぎのページにまとめています。

要点

  • VBScriptの廃止で止まりうるExcelマクロの処理は、.vbsを呼ぶ処理とVBScriptのRegExpを使う処理の2つです(Microsoft、2025年9月)。
  • VBScriptが既定で無効になる第2段階はおおむね2026年か2027年で、OSから消える第3段階の時期は決まっていません。
  • Version 2508(ビルド19127.20154)以降のMicrosoft 365では、RegExpがVBAに標準で入っています。
  • 架空の8本・105行を解析ツールで数えると6本に14か所が見つかり、「VBScript」の文字検索では2本・4か所でした。
  • 参照設定はコードの外にあるため、文字検索ではなく、ブックの中の参照の一覧まで読んで数えます。
目次
  1. VBScriptの廃止で、Excelマクロの何が止まるのですか?
  2. VBScriptは、いつ使えなくなるのですか?
  3. 社内のVBAから、該当する行をどう数えますか?
  4. Version 2508以降のMicrosoft 365なら、直さなくてよいのですか?
  5. 見つかった行は、どう直せばよいですか?
  6. このサイトで相談するには?
  7. よくある質問

VBScriptの廃止で、Excelマクロの何が止まるのですか?

止まりうるのは、VBAから.vbsのファイルを動かす処理と、VBScriptのRegExpを使う処理です。RegExpは、文字の並びの決まりで探したり置き換えたりする機能です。Microsoftは2025年9月9日のVBA向けの記事で、この2つを挙げています。

VBAのマクロそのものは廃止の対象ではありません。作った人がいないマクロの見方はExcelマクロの引き継ぎにまとめています。

書き方ごとに、止まる時期と直し方を並べると次のとおりです。RegExpの2つはOfficeを上げれば済み、.vbsだけは書き直しが要ります。

書き方 VBAの例 止まる時期(Microsoftの記事) 直し方
参照設定のRegExp 参照設定にvbscript.dll、Dim re As New RegExp 第3段階。Officeが2508以降なら動く Officeを2508以降へ
CreateObjectのRegExp CreateObject("VBScript.RegExp") 2508より前のOfficeは、VBScriptが無効のPCで動かない Officeを2508以降へ
.vbsを動かす Shell "wscript.exe ...backup.vbs" 第3段階で使えなくなる 中身をVBAかPowerShellなどへ移す
それ以外 Dictionary・FileSystemObjectなど 記事が挙げる2つに入らない 記事の範囲外

.vbsの呼び出しが第2段階でどうなるかは、Microsoftの記事に書かれていません。

VBScriptは、いつ使えなくなるのですか?

既定で無効になる第2段階は、Microsoftの2025年9月9日の記事に「approximately 2026 or 2027」(おおむね2026年か2027年)と書かれています。2026年10月17日に開いたMicrosoft Learnの一覧では、VBScriptは「将来のWindowsのリリースで廃止する」とだけあり、日付はありません。2026年中に始まるのか2027年になるのかは、確かめられませんでした。Windowsから削除する第3段階の時期は決まっていません。今は第1段階です。VBScriptは機能オンデマンド(あとから入れたり外したりできるWindowsの機能)として、既定で有効になっています。

非推奨の発表は2023年10月で、Microsoft Learnの非推奨の機能の一覧に載っています。2024年5月の発表を紹介した窓の杜の記事では、第2段階は「2027年ごろ」でした。2025年9月の記事では「2026年か2027年」になっています。

VBScriptの廃止の段階の年表。2023年10月に非推奨と発表、2024年5月に3段階の予定、2025年9月にVBA向けの記事。第1段階は既定で有効、第2段階の既定で無効は2026年か2027年ごろ、第3段階の削除は時期未定VBScript の廃止の段階と、VBA に関わる出来事2023年2024年2025年2026年2027年2028年第1段階:既定で有効(機能オンデマンド)第2段階:既定で無効(2026年か2027年ごろ)第3段階:削除(時期は未定)2023年10月非推奨と発表2024年5月3段階の予定を発表2025年9月VBA向けの記事。2508以降はRegExpが標準2026年10月16日この PC で .vbs が動いた出典:Microsoft Learn「Deprecated features in the Windows client」、Microsoft 365 Developer Blog(2025-09-09)、窓の杜(2024-05-23)の紹介。2026年10月16日の確認はマクロの守りの PC(Windows 11)
図1 VBScriptの廃止の段階と、VBAに関わる出来事。Microsoft LearnとMicrosoft 365 Developer Blog(2025年9月9日)の記述から作りました。

2026年10月16日に、マクロの守りのPC(Windows 11 Pro)で短い.vbsを動かしました。中ではVBScript.RegExpを使っています。結果はそのまま動き、この1台はまだ第1段階の状態でした。ほかのPCは情報担当の設定で変わるので、1台ずつ確かめます。

社内のVBAから、該当する行をどう数えますか?

ブックからVBAを取り出し、コメントを除いた行を書き方ごとに数えます。参照設定は、ブックの中の参照の一覧から読みます。マクロの守りが書いたvbscript_refs.pyは、oletoolsのolevbaを使い、Excelを起動せずに数えます。要点は次の数行です。

LATE = re.compile(r'CreateObject\s*\(\s*"VBScript\.RegExp"', re.I)
EARLY = re.compile(r'\b(?:As\s+(?:New\s+)?|New\s+)(?:VBScript_RegExp_55\.)?(?:RegExp|MatchCollection|Match|SubMatches)\b', re.I)
VBS = re.compile(r'\.vbs\b|\b[wc]script(?:\.exe)?\b(?!\.(?:Shell|Network))', re.I)
# 参照設定はコードの外(vbaProject.bin の VBA/dir)にある
raw = olevba.decompress_stream(bytearray(ole.openstream(entry).read()))
refs = [m for m in LIBID.finditer(bytes(raw)) if b'vbscript.dll' in m.group(1).lower()]

試すために、架空のブック8本(.xlsm 7本と.xlam 1本、計105行)を作り、14か所を仕込みました。解析ツールは14か所をすべて見つけ、該当は8本のうち6本でした。

架空のブック8本を解析ツールで数えた表。参照設定2件、型のRegExp 4行、CreateObject 4行、.vbsの実行4行で、6本に該当。VBScriptの文字検索では5行・2本で、うち1行はコメント架空の8本を解析ツールで数えた結果(行・件)参照設定型のRegExpCreateObject.vbsの実行「VBScript」grep受注集計(例).xlsm14———得意先マスタ(例).xlsm——3—3夜間バックアップ(例).xlsm———2—請求書発行(例).xlsm—————共通関数(例).xlam1————在庫表(例).xlsm——1—2出荷指示(例).xlsm———2—日報(例).xlsm—————合計24445架空のブック8本(マクロの守りが作成、scripts/figs/vbscript_refs.py)。参照設定は件数、ほかは行数。コメントの中の語は数えない
図2 架空の8本を解析ツールで数えた結果。マクロの守りが作ったブックで、実在の会社のコードではありません。参照設定は件数、ほかは行数です。

「VBScript」の文字で探すだけだと、見つかったのは2本・5行で、うち1行はコメントでした。参照設定だけが残った.xlamや、As New RegExpの行、.vbsを動かす行は出ません。参照設定はコードの文字ではなく、ブックの中の参照の一覧にあるからです。

サンプルはExcelで保存したブックではなく、Officeの仕様書(MS-OVBA)の形式でスクリプトが書いたものです。社内の実物を--scanで数えたら、何本かはVBAの画面の参照設定と見比べてください。

Version 2508以降のMicrosoft 365なら、直さなくてよいのですか?

RegExpを使う処理は直さなくても動きますが、.vbsを動かす処理は残ります。Microsoftの記事によると、Version 2508(ビルド19127.20154)以降は、RegExpがVBAに標準で入っています。CreateObjectで作る書き方も、2508以降ならどのWindowsでも動くとされています。

手元のビルドは、Excelの[ファイル]→[アカウント]の製品情報に出ます。マクロの守りのPCは16.0.20430.20146で、19127より大きいので2508より新しい版です。

気をつけたいのは、社内のPCの版がそろっていない場合です。2508より前のOfficeでは、CreateObjectのRegExpが動くのは、VBScriptが有効なWindowsだけです。同じブックが、更新の止まったPCでだけ止まります。

なお、記事が挙げているのはMicrosoft 365だけです。Office 2021などの買い切りの版については書かれていません。

見つかった行は、どう直せばよいですか?

RegExpの行はOfficeを2508以降へ上げて試し、.vbsを動かす行は中身を移します。Microsoftの記事の勧めは3つです。2508以降へ上げること、新しいマクロでは標準のRegExpを使うこと、VBScriptを無効にしたPCで試すことです。

見つかった行ごとの直し方の図。Officeのビルドが19127.20154より前なら先に2508以降へ上げる。RegExpの行は2508以降なら標準で動くのでVBScriptを無効にしたPCで試す。.vbsを動かす行は第3段階で使えなくなるので中身を移す見つかった行ごとに、何をすればよいかOffice のビルドが19127.20154 以上?RegExp の参照・行(参照設定・型・CreateObject).vbs を動かす行(wscript・cscript)いいえ → 先に Version 2508 以降へ上げる。古いままの Office の RegExp は、VBScript が無効の PC では動かない。2508 以降なら標準の RegExp で動く。VBScript を無効にした PC で試し、新しいマクロは標準の RegExp で書く。第3段階で使えなくなる。.vbs の中身を、VBA の中か PowerShell などへ移す。出典:Microsoft 365 Developer Blog(2025-09-09)の勧めをもとにマクロの守りが作成。.vbs の移し先は運営者の判断
図3 見つかった行ごとに、何をすればよいか。Microsoft 365 Developer Blogの勧めをもとにまとめました。.vbsの移し先は運営者の判断です。
  1. 解析ツールで、ブックごとに該当する行とモジュール・行番号を一覧にする
  2. マクロを使うPCのOfficeのビルドを集め、19127.20154より前のPCを洗い出す
  3. 情報担当にVBScriptを無効にしたPCを1台用意してもらい、該当するブックを動かす
  4. .vbsを動かす行は、.vbsの中身を読んでVBAかPowerShellなどに移す

見落としやすいのは.vbsの中身です。外のファイルを動かすだけに見えて、中で別のソフトを操作していることがあります。架空の出荷指示のブックも、送り状のソフトに渡すスクリプトをその場で書いて動かしていました。

私が引き継ぐときは、.vbsの中身まで読み、同じことをVBAの中でできるかを先に確かめます。マクロの守りでは、数えた結果を引き継ぎ書の「動く条件」の欄にも残します。

このサイトで相談するには?

VBScriptに頼るマクロがあるか分からない場合も、マクロの守りで一緒に数えます。何をどう頼むか決まっていなくても大丈夫です。御社のやり方に合わせて、進め方を一緒に考えます。準備は要りません。

無料で相談するからお送りください。返信は最短当日です。

よくある質問

VBScriptが廃止されると、VBAのマクロも使えなくなりますか?
いいえ。廃止されるのはWindowsのVBScriptで、VBAそのものではありません。止まりうるのは、VBAの中で.vbsを呼ぶ行とVBScriptのRegExpを使う行です。
手元のPCで、VBScriptがまだ有効かはどう確かめますか?
短い.vbsを1つ、cscriptで動かすのが手早い方法です。2026年10月16日にマクロの守りのWindows 11で試したときは、まだ動きました。
WScript.Shellを使う行も止まりますか?
Microsoftの記事には書かれていません。VBA向けの記事が挙げる2つに入らないため、解析ツールでは数えていません。気になる場合は別に一覧にしておきます。
Office 2021などの買い切りの版でも、RegExpは標準になりますか?
Microsoftの記事が挙げているのはMicrosoft 365のVersion 2508以降だけです。買い切りの版では、VBScriptを無効にしたPCで試して確かめます。

この記事の実験・計算の条件

架空のブック8本(.xlsm 7本・.xlam 1本、計105行)に14か所を仕込み、解析ツールで数えた結果。Windows 11、2026年10月16日。

出典

  1. Microsoft 365 Developer Blog「How to prepare VBA projects for VBScript deprecation」(2025年9月9日、段階・影響する2つの使い方・Version 2508 の RegExp)(2026年10月16日確認)
  2. Microsoft Learn「Deprecated features in the Windows client」(VBScript の非推奨の発表 2023年10月。2026年9月23日更新)(2026年10月16日確認)
  3. Microsoft Learn「Resources for deprecated features in the Windows client」(VBScript は機能オンデマンドとして提供してから削除。2026年9月23日更新)(2026年10月16日確認)
  4. 窓の杜「『VBScript』は2027年頃にデフォルトで無効に」(2024年5月23日、Microsoft の3段階の発表の紹介)(2026年10月16日確認)
  5. マクロの守り「VBScript への依存を数える解析」のスクリプト(scripts/figs/vbscript_refs.py)、架空のブック8本・105行、2026-10-16 実行(2026年10月16日確認)