
[環境]OS:Windows 8.1/Excel 2013
[キーワード]Excel/VBA/ファイルサイズ/エクスプローラー/バイト/キロバイト/B/KB/変換/Round
sFile_Size = FileLen(sFileNamePath)でファイルサイズを測ると、基本、Byte表示になります。
でも、エクスプローラーの表示って、サイズ表示ってKBですよね。
よくある回答として、1024で割っていくという説明がありますが、これだと、
ずれるんです。微妙に。OKなやつもあれば、NGのやつもある。
Excelで実験です。
sKBFSize = Format(Application.WorksheetFunction.RoundUp((sFile_Size / 1024), 0), "###,##0 KB")
皆さんの環境では如何でしょうか。
自分とこのあるフォルダでは一致しました。
Excel VBAでRoundUp出来ないのはビビりました。え、何か間違えましたかみたいな。
Application.WorksheetFunction.RoundUpでOKのようです。
Roundは行けるのにね・・・・。
[キーワード]Excel/VBA/ファイルサイズ/エクスプローラー/バイト/キロバイト/B/KB/変換/Round
sFile_Size = FileLen(sFileNamePath)でファイルサイズを測ると、基本、Byte表示になります。
でも、エクスプローラーの表示って、サイズ表示ってKBですよね。
よくある回答として、1024で割っていくという説明がありますが、これだと、
ずれるんです。微妙に。OKなやつもあれば、NGのやつもある。
Excelで実験です。
sKBFSize = Format(Application.WorksheetFunction.RoundUp((sFile_Size / 1024), 0), "###,##0 KB")
皆さんの環境では如何でしょうか。
自分とこのあるフォルダでは一致しました。
Excel VBAでRoundUp出来ないのはビビりました。え、何か間違えましたかみたいな。
Application.WorksheetFunction.RoundUpでOKのようです。
Roundは行けるのにね・・・・。