- ベストアンサー
Long型で表現できないファイルサイズへの対応
Excel VBAで、ファイルリストを作成するマクロを作成しています。 2GB以上の巨大なファイルだと、FileLen関数の戻り値が負になってしまいます。おそらく、Long型で表現できないためだと思います。 うまい逃げ方はありませんか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 FileSystemObject が簡単でしょう。File オブジェクトの Size プロパティーで参照できます。 2G オーバーのファイルなら VBA の Long 型の許容範囲を超えるかもし れませんね。 # Long型範囲: -2,147,483,648 ~ 2,147,483,647 VBA の FileLen は Long 型が戻り値なので、どうしても大きなファイル の場合は符号を補正する処理が必要になります。 一方、FileSystemObject の Size プロパティーの場合、このような補正 処理が不要です。受け取る変数は Double 型の変数を使うか、型変換して Currency型を使って下さい。Variant のままでも構いませんが。
その他の回答 (1)
- marbin
- ベストアンサー率27% (636/2290)
回答No.1
http://www.officetanaka.net/excel/vba/filesystemobject/index.htm FileSystemObjectを使ってはいかがでしょう? FolderオブジェクトのFilesコレクションでフォルダ内のファイル一覧を取得し、 Fileオブジェクトでファイルのプロパティを取得できます。
質問者
お礼
回答をありがとうございました。 FileSystemObjectを使うことは気が付きませんでした。
お礼
回答をありがとうございました。 FileSystemObjectを使うことは気が付きませんでした。