[このプロジェクトのコードは、64ビット・・Declare ・・]エラー解決方法 Excel VBA 2010 2013
[このプロジェクトのコードは、64ビット・・Declare ・・]のエラー解決方法です。
64 ビット版の Office 2010 や Office 2013 にアップグレードをした後、今まで使っていた Excel マクロを利用しようとすると、
「このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。Declareステートメントの確認および更新を行い、次にDeclareステートメントにPrtSafe 属性を設定してください。」
のメッセージが表示されることがあります。
これは 32 ビット版で作成された Excel マクロや VBA Project が 64 ビット版では利用できないためです。
ここでは 「このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。Declareステートメントの確認および更新を行い、次にDeclareステートメントにPrtSafe 属性を設定してください。」のエラーが発生した場合の対処方法 を紹介します。対象
Excel 2010, Excel 2013
Excel 2007 以降のバージョンであれば同じ方法で対応可能です。
「Declareステートメントの確認および更新」をおこなう
まず、表示されているエラーメッセージにある通り「Declareステートメントの確認および更新」をおこなう必要があります。Declare ステートメントの対象を 64 ビット版 Office 2010 とすることを VBA コンパイラに指示すれば、このエラーが発生することはありません。
そのためには、修飾子である PtrSafe
を付加する必要があります。
具体的な変更例
よく使われる Sleep を例にあげてみます。32 ビット版では、以下のように記述していました。
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
64 ビット版では、Declare の後ろにPtrSafe
を付加します。
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
すべての Declare ステートメントにPtrSafe
を付加したら、メニューの「デバッグ」から「VBAProjectのコンパイル」を実行してみましょう。エラーが出なくなるはずです。
参考サイト
まとめ
「このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。Declareステートメントの確認および更新を行い、次にDeclareステートメントにPrtSafe 属性を設定してください。」のエラー解決方法を紹介しました。
こちらの「VBA 32Bit版と64Bit版でDeclareステートメントの宣言を分ける方法」も参考にしてみてください。
おつかれさまでした。