Excel x64の場合のエラー
このプロジェクトのコードは、64 ビット システムで使用するために更新する必要があります。Declare ステートメントの確認および更新を行い、次に Declare ステートメントに PtrSafe 属性を設定してください。
Officeのx64と x86でVBAマクロに非互換があるなんて知らなかった。
#If Win64 Then ' 64Bit 版 Private Declare PtrSafe Function GetPrivateProfileInt _ Lib "kernel32" Alias "GetPrivateProfileIntA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal nDefault As Long, _ ByVal lpFileName As String) As Long #Else ' 32Bit 版 Private Declare Function GetPrivateProfileInt _ Lib "kernel32" Alias "GetPrivateProfileIntA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal nDefault As Long, _ ByVal lpFileName As String) As Long #End If
※DeclareをDeclare PtrSafeにするだけ。
追記
サンプルが悪かった。
引数も非互換があった。
ポインタはLongからLongPtrに、ハンドルはLongからlonglongへ変更する必要あり。
docs.microsoft.com
www.saka-en.com