Access で作成したアプリケーションが、2025/08/31 に突然、見たことのないエラー「Microsoft Visual C++ Runtime Library Assertion failed!」を出すようになりました。

対処法を見つけたので、参考までに記します。記載内容は無保証です。実施は自己責任でお願いします。

 

RegExp で Assertion failed エラーが出てる? 内容とその原因

詳細なエラー内容はこちら。

Microsoft Visual C++ Runtime Library Assertion failed! Program: ... File: g:\vba\src\65_VC8\VBA\rt\regexpbase.cxx Line: 2063 Expression: ibLim == m_ibMin

Access VBA でのエラー箇所は、CreateObject("VBScript.RegExp") して RegExp.Replace している行でした。

アプリケーションは全く変更しておらず、いわゆる「何もしてないのに壊れた」というやつです。

エラーが出る前にこの PC でやったことといえば、Windows Update…。その線でいろいろ調べてみたところ、Microsoft Office のアップデートに伴なってエラーが出ることがわかりました。

 

Microsoft Office のバージョン戻しで対処

Microsoft Office を以前のバージョンに戻すことでエラーは出なくなり、以前と同様の動作になりました。対処の手順は以下のとおりです。

  1. まず、勝手にアップデートされないように、Access なり Excel なりで「ファイル」→「アカウント」→「更新オプション」ボタンをクリックして自動更新を止めます。
  2. コマンドプロンプトを管理者として実行します。
  3. 下記の 2つのコマンドを順に実行します。
  4.   cd %programfiles%\Common Files\Microsoft Shared\ClickToRun
      officec2rclient.exe /update user updatetoversion=16.0.19029.20208
    

パラメータに与えた「16.0.19029.20208」がエラーが出る前のバージョンです。
「16.0」は Microsoft Office のメジャーバージョン番号。 Office 2019、Office 2021、Microsoft 365で共通の値らしいですが、公式のドキュメントには記載が見当たりません。(コマンドに明示的に与えないといけないものなのに公式ドキュメントに記載が無いなんて、イヤですね)
「19029.20208」はビルド番号で、Release notes for Current Channel に一覧があります。

エラーの出るバージョンは「16.0.19127.20154」でした。現在のバージョンは、Access なり Excel なりで、「ファイル」→「アカウント」→「Access(や Excel) のバージョン情報」ボタンをクリックすることで表示されます。

Microsoft Visual C++ 再インストールなど、効果の無かったもの

Microsoft Visual C++ 再頒布可能パッケージの再インストールを試しましたが、効果ありませんでした。

Windows Update が原因なのだろうと、直近のアップデートのアンインストールを試みましたが、エラーになってしまって、効果が無かったというより効果を確かめられませんでした。Windows Update がエラーになると面倒だし時間も取られるので、実施はお勧めしません。

 

今後はどうなる?

Microsoft Office のアップデートに問題がある、ということになるのでしょうが、これは修正されるのでしょうか?
現在 Microsoft Office の自動アップデートは止めているので、修正版のアップデートが出ないと困りますね。Release notes for Current Channel を注視しようと思います。