めも

パスワードを思い出したので、メモ再開

Excel x64の場合のエラー

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

Officeのx64と x86VBAマクロに非互換があるなんて知らなかった。

#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