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

昔作ったVBAを動かすために Office 365 Business (改めMicrosoft 365 Apps for enterprise)を64bit版から32bit版に再インストールし直す方法について。

昔作ったVBAを動かすために Office 365 Business (改めMicrosoft 365 Apps for enterprise)を64bit版から32bit版に再インストールし直す方法について。



以下が、本文です。




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ってこと。

created by Rinker
¥3,080 (2020/07/03 09:44:32時点 Amazon調べ-詳細)

最後に

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

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