AccScan
延命・注意

VBScript廃止はAccess VBAに影響するか|ScriptControl利用の点検方法

WindowsのVBScript廃止でもAccessのVBAは残ります。影響するのはVBScript.RegExpやScriptControlを呼ぶ一部だけ。VBEでの点検3語と、バージョン2508以降のRegExp代替など対処法を解説します。

まずは、自社のAccessが「解析できるか」を無料で確認できます。

約2分・ファイル送信不要・発注義務なし

結論:VBA自体は残ります。影響するのはVBScript部品を呼ぶ一部のコードだけです

先に安心材料から。廃止されるのはWindowsに搭載されているスクリプト言語のVBScriptであって、AccessのVBAではありません。Microsoftが2025年9月に公開したVBAプロジェクト向けの公式ガイドでも、既存のVBAプロジェクトは従来どおり動作し、対応が必要になるのはVBAからVBScriptの部品を呼び出している場合に限る、と説明されています。

影響の切り分けを先に表で示します。

Accessでの使い方影響
通常のVBA(フォーム・クエリ操作・DAO/ADOなど)影響なし
FileSystemObject・Dictionary(Microsoft Scripting Runtime)影響なし(記事著者がコメントで回答)
VBScript.RegExp(正規表現)影響あり。ただしVBA本体に代替が用意済み
ScriptControlでVBScriptを実行(Language = "VBScript")影響あり
VBAから.vbsファイルを実行影響あり

つまり、心配すべき範囲はかなり狭いです。当社が解析のご依頼で中身を拝見するAccessでも、該当コードが見つかるのは体感で1〜2割程度。ただし、該当するかどうかを確かめないまま放置するのはおすすめしません。点検自体は10分もかからないので、この記事の手順で一度確認しておいてください。

VBScript廃止の3段階と、2026年7月時点の現在地

MicrosoftはVBScriptの廃止(deprecation)を2023年10月に発表し、3段階で進める計画を示しています。

段階内容時期
第1段階Windows 11 バージョン24H2以降、VBScriptはFOD(オプション機能)としての提供になる。ただし当面はプリインストールされ、既定で有効のまま実施済み
第2段階FODが既定で無効になる。使い続けるには手動での有効化が必要Microsoftの説明では「おおよそ2026年か2027年」
第3段階Windowsから完全に削除される未定

2025年時点では第1段階、つまりVBScriptはまだ既定で有効です。第2段階の時期についてMicrosoftは幅のある言い方しかしておらず、確定日はありません。実施日や対象となるWindowsリリースは、2025年時点でまだ発表されていません。一方で、廃止という方向が覆る気配もありません。

影響を受ける3つのパターンと対処

1つ目はVBScript.RegExp、正規表現です。CreateObject("VBScript.RegExp")という書き方か、参照設定の「Microsoft VBScript Regular Expressions 5.5」経由で使われます。電話番号や郵便番号の形式チェック、文字列からの抽出あたりが定番の用途です。これには救済策が公式に用意されました。Microsoft 365のバージョン2508以降では、RegExpクラスがVBA本体に標準で組み込まれ、vbscript.dllへの参照なしで使えます。公式ガイドは、既存コードとの互換のためにCreateObjectによる遅延バインディングを使う方法も案内しています。Microsoft 365版のAccessを最新に保っているなら、実質的にこの問題は吸収済みです。

注意したいのは買い切り版(Access 2021 / 2024などのLTSC系)です。VBA組み込みのRegExpが確認できているのはMicrosoft 365のバージョン2508以降で、買い切り版への提供については当社では公式情報を確認できていません。買い切り版で正規表現を多用しているなら、第3段階(完全削除)が来る前に書き換えの計画を立てておくのが安全です。

2つ目はScriptControl(MSScriptControl.ScriptControl、msscript.ocx)です。VBScriptなどのスクリプトをプログラムの中から実行するための古い部品で、文字列で組み立てた式をその場で評価する用途によく使われてきました。ScriptControlはLanguageプロパティでJScriptなど他のスクリプトエンジンも選べますが、Accessでよく見かけるのはVBScriptエンジンを指定した使い方(Language = "VBScript")です。この場合、実行の中身はVBScriptなので、エンジンが無効化・削除されれば動きません。Accessなら、式の評価だけであれば組み込みのEval関数で置き換えられるケースが多い、というのが当社の実感です。なおScriptControlは、VBScript廃止を待たずに問題になることもあります。PCの入れ替えで64bit版Officeに変わった途端、ScriptControlを使う処理だけエラーになったという相談が当社にも時々来ます。

3つ目は、VBAからShell関数などで.vbsファイルを実行しているパターンです。夜間バッチやファイル整理を.vbsに任せて、Accessから起動しているような構成が該当します。公式ガイドも、第3段階以降はVBAからの.vbs呼び出しがサポートされなくなると明記しています。中身の処理はPowerShellかVBA本体に移せる場合がほとんどなので、点検で見つけたら削除フェーズを待たず、次の改修機会に書き換えておくのが無難です。

点検方法:VBEの検索3語と参照設定の確認

手順は単純です。対象のAccessを開き、Alt+F11でVBE(Visual Basic Editor)を開きます。Ctrl+Fで検索ダイアログを出し、対象を「カレント プロジェクト」にして、次の3語を順に検索してください。フォームやレポートに埋め込まれたコードもまとめて対象になります。

検索語見つかるもの
VBScriptCreateObject("VBScript.RegExp")などの遅延バインディング
ScriptControlCreateObject("ScriptControl")CreateObject("MSScriptControl.ScriptControl")
.vbsShellやwscript / cscript経由の外部スクリプト実行

3語ともヒットしなくても、確認すべき場所がもう1つあります。VBEのメニューから「ツール」→「参照設定」を開き、「Microsoft VBScript Regular Expressions 5.5」や「Microsoft Script Control 1.0」にチェックが入っていないか見てください。参照設定経由(事前バインディング)の場合、コードはDim re As New RegExpのような形になり、VBScriptという文字がどこにも出てこないためです。チェックが入っていたら、今度は「RegExp」で検索すると使用箇所を特定できます。

公式ガイドは、VBScriptを無効にした環境でVBAプロジェクトを動かし、隠れた依存を洗い出すテストも勧めています。やるなら検証用のPCで。本番機でいきなり無効化するのはやめてください。

問題は、この点検が自力でできないケースです。作った担当者が退職していてVBEのパスワードが分からない。あるいは配布用の.accde(ソースコードを除いたファイル)しか手元に残っていない。こうなるとコード検索の入り口自体が塞がっています。前者はAccessの属人化、後者はaccdeと元ファイルの管理の記事で詳しく書きました。当社では、こうした触れないAccessでも解析に対応できるかを無料で確認できます。点検の入り口が塞がっている場合は、無料の解析可否チェックを選択肢の1つにしてください。

よくある質問

Q. VBAもそのうち廃止されるのではないですか。

2025年時点で、VBAの廃止を示す公式発表はありません。むしろ2025年にはRegExpクラスがVBA本体に追加されるなど、いまも手が入り続けています。将来を保証することは誰にもできませんが、今回のVBScript廃止とVBAの存廃は別の話です。

Q. FileSystemObjectやDictionaryを使っていても大丈夫ですか。

はい。これらはVBScriptではなくMicrosoft Scripting Runtime(scrrun.dll)の機能です。公式ガイドの著者が同記事のコメント欄で、これらは変更しておらず従来どおり動作する想定だと回答しています。名前の雰囲気が似ているため混同されがちですが、今回の廃止対象はvbscript.dllです。

Q. 該当コードが見つかった場合、いつまでに直せばよいですか。

確定した期限はありません。第2段階(既定無効化)の後も、手動で有効化すれば当面は動かせる見込みです。ただ、対応を先送りするほど、担当者の異動や退職と重なって身動きが取れなくなる危険は増します。点検だけ先に済ませ、該当があれば次の改修機会に合わせて書き換える、くらいの温度感をおすすめします。Accessを使い続けるための点検全般は延命チェックリスト10項目にまとめています。

Q. Accessとは別に、社内に.vbsのバッチファイルがあります。これも対象ですか。

対象です。VBScript廃止は.vbsファイル単体の実行にも及びます。台数が多い企業環境では、MicrosoftがIT管理者向けにvbscript.dllの利用箇所を洗い出す検出方法の解説を公開しているので、そちらも参考にしてください。

触れないAccessが「診断できるか」だけ、確かめませんか。

顧客データは送信不要。発注の義務もありません。

約2分・ファイル送信不要・発注義務なし/説明はオンライン・売り込みはしません