すべての機能を実行した後、アクセス(_Application.Quit
_)を閉じようとしています。
すべての機能が終了した後のVBAのクローズアクセス が参考になりました。
しかし、Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
の場合、次のエラーが表示されます。
このプロジェクトのコードは、64ビットシステムで使用するために更新する必要があります。
アクセスを完全に閉じる前にすべての機能を実行するために、このコードを置き換えるものはありますか?
dwMilliseconds
パラメータはDWORDであるため、技術的には32ビットマシンでは32ビット、64ビットマシンでは64ビットになります。このため、PtrSafe
表記が必要です(ただし、技術的にはdwMilliseconds
...であるため、ByVal
は正しくマーシャリングします。 :
#If VBA7 Then
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If
aPI宣言をこれに変更します。
#If VBA7 And Win64 Then
Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#Else
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If
64ビットAPIについては、これをお読みください: http://www.jkp-ads.com/articles/apideclarations.asp