1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Last updated at Posted at 2020-05-01

既存のマクロ付きExcelを違う環境で動作させようとすると

このようなエラーが出ることがある。
image.png

64bit版で動作させるにはPtrSafe 属性が必要

これは64bit版のExcelでこのマクロを動かすには、DeclareステートメントにPtrSafeをくっつけてくださいということ
そのまんまですね

置換などを使ってDeclareの後ろにPtrsafeを付ける

こんな感じ

Private Declare PtrSafe Sub sample

追記 (2020/05/06)

Declareの後ろにPtrsafeを付けるだけでなく、使用している関数を基にLong型の引数や返り値の一部をLongPtrに変更する必要があるようです。
どの引数をLongPtrに変更すべきかは
https://www.microsoft.com/en-us/download/details.aspx?id=9970
でダウンロードしたファイルを実行すると
C:\Office 2010 Developer Resources\Documents\Office2010Win32API_PtrSafe フォルダーに 「Win32API_PtrSafe.TXT 」ができるので、それを参考にすると良いそうです。

参考サイト

・WindowsAPI をOffice64bit版または32bit版のVBAで使うには | hatena chips
"https://hatena19.com/use-win-api-with-office-64bit-or-32bit-vba/"

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?