Office365、Excel:64ビットでVBAを使用する方法
Office365は、表計算ソフト、ワープロソフト、プレゼンテーションソフト、データベースソフト等が
入っているオフィスソフトです。これをインストールして置けば、家庭や仕事で多くの事が出来る様になります。
しかし、Office365、Excel(64ビット)でVBA使用中にエラーが発生しました。このVBAは
、以前に使っていたExcel2016(32ビット)では正常に作動していました。使用したパソコンは、下記
のソフトを使用していました。
OS : Windows10(64bit)バージョン1909(OSビルド 18363.1198)
オフィスソフト : Excel for Microsoft 365 MSO(16.0.13328.20350)
64bit
以下、Office365、Excel:64ビットでVBAを使用する方法を記載して行きます。
(項目1)
・Office365、Excel(64ビット)でVBA使用中にエラーが発生しました。このVBAは
、以前に使っていたExcel2016(32ビット)では正常に作動していました。
(項目2)
・エラーは、以下の内容です。
コンパイルエラー:
このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。
Declareステートメントの確認および更新を行い、次にDeclareステートメントに
PtrSafe属性を設定してください。
・Excel(64ビット)でVBAがエラーとなる場合がある様です。
(項目3)
・インターネットで色々と調べて見ると、
WindowsAPI をOffice64bit版または32bit版のVBAで使うには | hatena chipsが見つかりました。
・上記によると、以下の2つが必要との事でした。
@Declare の後に PtrSafe を挿入する。
Aウィンドウハンドル、ポインタを表す関数の引数、戻り値の型は、Long型からLongPtr型に変更する。
(項目4)
・VBAコードを以下の様に変更すると、正常に作動する様になりました。
・変更前
Private Declare Function apiShowWindow Lib "user32" Alias "ShowWindow"
_
(ByVal hWnd As
Long, ByVal nCmdShow As Long) As Long
・変更後
Private Declare
PtrSafe Function apiShowWindow Lib "user32" Alias "ShowWindow"
_
(ByVal hWnd As
LongPtr, ByVal nCmdShow As Long) As Long
(項目5)
・以上で、Office365、Excel:64ビットでVBAを使用する方法は終了です。