「このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。Declareステートメントの確認および更新を行い、次にDeclareステートメントに PtrSafe 属性を設定してください。」が表示されVBAが動かない場合の対処方法について。

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

以下が、本文です。


2019年8月中旬にOffice365を再インストールしたところ、

お題の

このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。

Declareステートメントの確認および更新を行い、次にDeclareステートメントに PtrSafe 属性を設定してください。」が表示されVBAが動かない場合の対処方法について。

と、言うメッセージボックスが出て、VBAが動かなくなっちゃいました。

194219_0

こんな有様です。

目次

このメッセージは?

で、このメッセージにですが、要は、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」の編集メニューから、置換を選択して、以下のように入力します。

194217_0

検索する文字列に「Declare」、置換後の文字列に「Declare PtrSafe」と入れて、後は、対象はカレントモジュールか、カレントプロジェクトを選択して、「すべて置換」をクリックすれば、置換出来ちゃいます。

その結果

その結果、無事に動作しちゃいました。万事OKってこと。

最後に

この現象ですが、私の場合は、Accessで発生したのですが、ExcelとかWordとかでも同じ現象になり、同じ対処方法で解決するようです。

ただ、注意点としては、一気に置換しちゃう場合、くれぐれもバックアップをしてから作業しましょうね。

よかったらシェアしてね!

この記事を書いた人

コメント

コメント一覧 (6件)

  • 新しいPCに変えたところ、accessでコンパイルエラーが起きてしまい、非常に困っておりました。こちらのページの対処方法を使って解決しました。ありがとうございました!

    • コメントありがとうございました。

      少しでもお役に立てて、なによりです。

  • PCの不具合でOfficeを再インストールしたら、知らぬ間にOfficeが32ビット⇒64ビットになっていました。
    このあたりオッサンですので原因に気づくのが遅い遅い・・・
    最初に悩んだのがDAO3.6DLLがダメで、時間かかって何とか解決 ⇒ 安心
    最後にunlha32.dllでのエラー ⇒ あぶら汗 ⇒ 対処方法が全く分からない
    このサイトの情報で無事解決し救われました。ありがとうございます。

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次
閉じる