投稿者 KOZ  (社会人) 投稿日時 2023/11/12 23:28:48
正攻法なら
Sub main()
    Debug.Print GetFileSize(2, -2147483648@) / 1024; "KB"
End Sub

Function GetFileSize(ByVal nHigh As LongByVal nLow As LongAs Variant
    GetFileSize = CDec(ToUint32(nHigh)) * (2 ^ 32) + ToUint32(nLow)
End Function

Function ToUint32(ByVal value As LongAs Currency
    Dim tmp As Currency
    If value > 0 Then
        ToUint32 = value
    Else
        ToUint32 = 4294967295@ + value + 1
    End If
End Function

かなー