【32ビット/64ビットの壁】Access移行(Office更新)で動かなくなった時の対処法
会社のPC入れ替えやMicrosoft 365の導入に伴い、Office環境を32ビット版から64ビット版へ移行した際、これまで問題なく動いていたAccessシステムが突然エラーを起こして停止してしまうケースが多発しています。長年運用してきた大切な業務システムが動かなくなると、現場の業務に大きな支障をきたします。
このトラブルの多くは、Accessが壊れたわけではなく、32ビット版と64ビット版の「プログラムの内部仕様(APIの互換性)」の違いによって発生しています。原因を適切に把握し、必要な改修を行うことで、システムを再び安全に動作させることが可能です。
ここでは、Officeの64ビット化に伴ってエラーが発生する代表的な原因と、具体的な対処の考え方について解説します。
なぜ64ビット環境でエラーが発生するのか?
エラーが発生する最大の原因は、VBAコード内でWindowsの標準機能や外部ライブラリを呼び出すための「Declareステートメント(Windows APIの呼び出し設定)」にあります。
32ビット向けに書かれたVBAコードは、64ビット環境のOfficeではそのまま動作しない仕組みになっています。そのため、VBAのコンパイルエラーが発生したり、システム起動時にプログラムが強制終了したりといった症状が現れます。また、過去に導入された外部のActiveXコントロール(カレンダー制御など)が64ビット環境に対応していないことも原因の一つです。
主な対処法と修正のアプローチ
システムを64ビット環境に適応させるためには、環境や運用の状況に応じた適切なアプローチが存在します。
1. VBAコード内のAPI宣言を64ビット対応へ書き換える
VBAプログラム内のDeclare文に「PtrSafe」属性を追加し、ポインタやハンドルを扱う変数の型を「Long」から「LongPtr」へ変更する改修を行います。条件付きコンパイル(#If Win64 等)を記述することで、32ビット環境と64ビット環境のどちらでも共通して動作するコードに補正することも可能です。
2. 非対応コントロールの置き換え・標準機能への移行
64ビットに対応していない古いActiveXコントロールを使用している場合は、Office標準の機能や最新のVBAフォーム要素へと差し替える設計変更を行います。
3. Officeを一時的に32ビット版で再インストールする
システムのプログラム改修に時間がかかる場合や緊急を要する場合の応急処置として、対象PCのOfficeを32ビット版でインストールし直して運用を継続する手段も検討されます。
将来を見据えたシステム維持管理の考え方
Office環境は常にアップデートされていくため、今後もバージョンアップや仕様変更に伴うトラブルは起こり得ます。エラーが発生したタイミングを機に、コード全体の安全性点検や最新環境への適合化を行っておくことが、システムを長期間安心して使い続けるためのポイントです。


