Accessがエラーで動かない?!64bit版が原因かもしれません

Accessを新しいパソコンで起動したところ・・・

突然、下記のようなエラーメッセージが出力されAccessが動かなくなりましたか?

 

コンパイルエラー:
「この
プロジェクトのコードは、64 ビット システムで使用するために更新する必要があります。Declare ステートメントの確認および更新を行い、次に Declare ステートメントに PtrSafe 属性を設定してください。」

 

Accessがエラーで動かないのは、64bit版のOffice(Access)が原因かもしれません。
Office2010、2013、2016、2019で同じエラーとなることを確認しました。

この記事ではエラーの原因・対策方法を解説していきます。

Office(Access)には64bit版と32bit版がある

OfficeにはOffice2010から64bit版と32bit版があります。
64bit版は新しいもの、32bit版は古いものでOffice2007以前は32bit版しかありませんでした。

Office2010以降のインストーラーには64bit版と32bit版が同封されています。

間違って、64bit版をインストールしてしまった

Officeのインストーラーを起動すると、通常32bit版のインストーラーが自動で起動します。

無意識にインストールを進めると32bit版が自動的にインストールされるはずです。
しかし、手動でsetup64.exeを起動すると64bit版がインストールされてしまいます。

新しいパソコン(OS)が64bitだから、64bit版のOfficeをインストールしませんでしたか?
64bitパソコンでも32bit版のOfficeは問題なく動きます。

  • setup.exe
    +setup64.exe
    +setup32.exe

<Office2019の場合>
Office2019の場合は上記のOffice2016までの動きとはになります。
64bit版が自動的にインストールされます。
32bit版をインストールしたければ手動でsetup32.exeを起動してください。

#詳しくはマイクロソフト社のサポートサイトをご参照ください。

エラー原因と対策方法

上記エラー原因は、プログラムの書き方が32bit版のOffice向けだからです。

お使いのAccessで「Windows API」という機能を使用しているのですが、
その機能を呼び出すための宣言方法を64bit版にすればエラーは解消されるはずです。

<64bit版の宣言方法>
・Declare PtrSafe Sub・・・
・Declare PtrSafe Function・・・
※Declareの後ろに「PtrSafe」を追加してください。

<32bit版の宣言方法>
・Declare Sub・・・
・Declare Function・・・

まとめ

Windows APIを使う場合、Officeの64bit版と32bit版で宣言の仕方に違いがあります。

上記エラーとなったAccessは元々32bit版のOffice(Access)で作られたものでしょう。
32bit版で作られたAccessはOffice2010以降も32bit版で動かすことをおススメいたします。
上記エラー以外の不具合を引き起こす可能性もあります。

※Office 2019(最新)にも32bit版はあります。

Access開発サポートがわかる、
3つのコンテンツ