機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > Excel 2010レビュー

64ビット版VBAでのAPI宣言



64ビット版のExcel VBAは、Win32のAPI宣言でエラーになります。従来の32ビットアーキテクチャと、64ビットアーキテクチャの違いについては、専門の書籍などを見てもらうとして、要するに、今まで問題のなかったマクロがエラーになるということです。



勘違いしないでくださいね。
新しいExcel 2010すべての話ではありません。
64ビット版Excelに限った現象です。
32ビット版のExcelでは、何も問題ありません。

ちょっと正確な情報ではないのでナニですが、エラーになるAPIもある、と聞きました。てことは、エラーにならないAPIもあるのでしょうか。まさか、すべてのAPIをテストするわけにはいきませんが、私がよく使うAPIでは、ことごとくエラーになりました。











キリがないので、このへんにしておきます。

さて、では64ビット版VBAでWin32APIをコールするには、どうしたらいいのでしょう。それには、エラーを告げるダイアログボックスに書かれているように、PtrSafeというキーワードを使います。





PtrSafeキーワードは、32ビット版のExcel 2010や、Excel 2007のAPI宣言で使用していても問題ありません。同じ宣言とコードを実行した結果です。

【32ビット版のExcel 2010】


【Excel 2007】


あれ?なんか、64ビット版の方が遅いぞ・・・(^^;
これはこれで、別の機会に調査してみます。




このエントリーをはてなブックマークに追加