2021年8月16日月曜日

Window10をアップデートしたらAccessのVBAでプロシージャの呼び出し、または引数が不正ですって言われたときに見る日記

会社でのパソコンのトラブル。1日に複数の問い合わせがあることも珍しくありません。今日は、1勝1敗(泣)

解決できないときは、申し訳ないやら悔しいやら。

でも、今日の1勝はなかなかの成果。
ネットで調べても、解決策が出てこない新しいトラブル。なので、後進のためにも解決策を記しておこうと思います。

あ、トラブってない人はここまで。にこちゃんの写真を早めに載せておきます(笑)

わたちの寝床に乾燥機から出したタオルを突っ込んでいったの誰ワン?
気持ちよくて眠くなるワン……zzz🐾


さて、以下その症状と解決方法です。

企業では昔から使ってる社内システム。古いバージョンのOfficeで作られたものを直しながらだましだまし使ってる場合も多いですよね。

おとーさんの会社でもそんなシステムがいくつかあります。そのひとつがWindows10の8月の定期アップデート以降にエラーを出すようになってしまいました。

マクロ(VBA)付きのAccessで拡張子は「.mdb」
作成された当時のAccessのバージョンは2003だったと思います。

ボタンを押すことでマクロが実行される仕様になってますが、マクロが実行されると

「プロシージャの呼び出し、または引数が不正です」

と出て実行できなくなってしまいました。
ちなみに、どのボタンを押しても同じエラーが出ます。

2019年にも同様のトラブルが合ったようですが、当時はしばらくしてから修正パッチが出ています。

今回も、おそらくしばらくすると修正パッチが提供されると思いますが、未だネットに同様の症状の報告がないので、まだまだ時間がかかるのかも。

おとーさんが行った対応は以下のとおりです。

  1. VBAエディタを開きます。
  2. 各フォームに記述されているマクロをフォーム毎にメモ帳などにコピーしておきます。
    エクスポートしておいても良いと思います。
  3. マクロを各フォーム毎に全削除し、その都度「デバッグ」→「コンパイル」を実行
  4. 「プロシージャの呼び出し……」のエラーが出れば、次のフォームのマクロを全消しし、コンパイル。
  5. 3〜4を繰り返します。コンパイルした時に「プロシージャの呼び出し……」のエラーが出なくなったところで終了。今まで削除したマクロをコピーしておいたメモ帳などから元に戻します。
  6. 念の為にもう一度コンパイル。
以上で元通りエラーが出ずに使えるようになっていると思います。

必ずこの方法で成功する保証はありませんが、一度試してみる価値はあります。
くれぐれも、Accessのファイルをバックアップ取ってから実行してください。

まぁ、一番の解決策はいつまでも古いシステム使ってないで、新しいOffice365へ移行しようよって事なんですけどね(苦笑)

この記事が企業内で兼業システム担当をしている担当者さんのお役に少しでもたてますように。