※VBAが動かない場合、プログラムを修正する以外に、思い切って32bit版のOfficeにダウングレードする方法もあります。詳細はこちらの記事をご覧下さい。

以下が、本文です。
2019年8月中旬にOffice365を再インストールしたところ、
お題の
このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。
Declareステートメントの確認および更新を行い、次にDeclareステートメントに PtrSafe 属性を設定してください。」が表示されVBAが動かない場合の対処方法について。
と、言うメッセージボックスが出て、VBAが動かなくなっちゃいました。

こんな有様です。
このメッセージは?
で、このメッセージにですが、要は、64bit版のOfficeで動作させる場合は、Declareステートメントに PtrSafe 属性を設定をする必要があるって、メッセージです。
マイクロソフトの公式ページによると、
Microsoft Officeの64ビットバージョンを実行するとき、現在、Declareステートメントには、PtrSafeキーワードを含める必要があります。PtrSafeキーワードは、Declare ステートメントが、Microsoft Officeの64ビットバージョンで実行しても安全であることを示します。
とのこと。
対処方法は?
そうと分かれば、Declareステートメントに PtrSafe を付けちゃいましょう。
一番簡単にあっさりとやる方法は、置換しちゃえばいいじゃね。ってことで、早速「Microsoft Visual Basic for Applications」と言うVBAエディタで、置換しちゃます。
「Microsoft Visual Basic for Applications」の編集メニューから、置換を選択して、以下のように入力します。

検索する文字列に「Declare」、置換後の文字列に「Declare PtrSafe」と入れて、後は、対象はカレントモジュールか、カレントプロジェクトを選択して、「すべて置換」をクリックすれば、置換出来ちゃいます。
その結果
その結果、無事に動作しちゃいました。万事OKってこと。
最後に
この現象ですが、私の場合は、Accessで発生したのですが、ExcelとかWordとかでも同じ現象になり、同じ対処方法で解決するようです。
ただ、注意点としては、一気に置換しちゃう場合、くれぐれもバックアップをしてから作業しましょうね。
コメント
コメント一覧 (8件)
この情報、ものすごく助かりました。ありがとうございます。
お役に立てて、なによりです。
新しいPCに変えたところ、accessでコンパイルエラーが起きてしまい、非常に困っておりました。こちらのページの対処方法を使って解決しました。ありがとうございました!
コメントありがとうございました。
少しでもお役に立てて、なによりです。
PCの不具合でOfficeを再インストールしたら、知らぬ間にOfficeが32ビット⇒64ビットになっていました。
このあたりオッサンですので原因に気づくのが遅い遅い・・・
最初に悩んだのがDAO3.6DLLがダメで、時間かかって何とか解決 ⇒ 安心
最後にunlha32.dllでのエラー ⇒ あぶら汗 ⇒ 対処方法が全く分からない
このサイトの情報で無事解決し救われました。ありがとうございます。
コメントありがとうございました。
少しでもお役に立てて、なによりです。
32ビットに戻す方法も別記事に書いていますので、当面は32ビットってのもありかもです。
https://fu-tara.com/how_to_reinstall_office_from_64bit_to_32bit/
ありがとうございました!助かりました。PCがクラッシュして新規PCにACCESS2019をインストールしてバックアップしていたファイルを展開しようとしたらこの警告文が出てきて困ってました。
あっさり解決しました。その一文を加えればいいくらいの警告文にしてくれればいいのに!と思った次第です。
コメントありがとうございました。
お役に立てて何よりです。
これからも、よろしくお願いします。