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

2019/06/11(更新日:2022/01/24) Accessトラブル集

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のインストーラーを起動すると、

Office2016までは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つのコンテンツ