0
CopyFileWをVBAから呼び出すと、コピー先のフォルダが存在しないため、CopyFileWから返される値は0になりますが、GetLastErrorも0を返します。 CopyW操作の失敗からエラーコードを取得するにはどうすればよいですか?CopyFileWは0を返しますがGetLastErrorも0を返します
Dim Ret As Long
sFrom = "\\?\UNC" & Mid(sFrom, 2)
Ret = CopyFileW(StrPtr(sFrom), StrPtr(sTo), False)
If Ret = 0 Then
Call LogErrorFilFol(GetFileFromPath(sFrom), GetFolderFromPath(sFrom), _
"WCopyFile error - " & ErrorMsg(GetLastError), FileID)
End If
GetLastErrorは、CopyFileが返された直後に呼び出す必要があります。それらの間に他の関数を呼び出すだけでなく、VBランタイムは他の関数をinteropレイヤの一部として呼び出すこともあります。 –