アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel VBAで、ファイルリストを作成するマクロを作成しています。
2GB以上の巨大なファイルだと、FileLen関数の戻り値が負になってしまいます。おそらく、Long型で表現できないためだと思います。
うまい逃げ方はありませんか?

A 回答 (2件)

こんにちは。



FileSystemObject が簡単でしょう。File オブジェクトの Size
プロパティーで参照できます。

2G オーバーのファイルなら VBA の Long 型の許容範囲を超えるかもし
れませんね。

 # Long型範囲: -2,147,483,648 ~ 2,147,483,647

VBA の FileLen は Long 型が戻り値なので、どうしても大きなファイル
の場合は符号を補正する処理が必要になります。

一方、FileSystemObject の Size プロパティーの場合、このような補正
処理が不要です。受け取る変数は Double 型の変数を使うか、型変換して
Currency型を使って下さい。Variant のままでも構いませんが。
    • good
    • 0
この回答へのお礼

回答をありがとうございました。
FileSystemObjectを使うことは気が付きませんでした。

お礼日時:2008/11/03 21:51

http://www.officetanaka.net/excel/vba/filesystem …

FileSystemObjectを使ってはいかがでしょう?
FolderオブジェクトのFilesコレクションでフォルダ内のファイル一覧を取得し、
Fileオブジェクトでファイルのプロパティを取得できます。
    • good
    • 0
この回答へのお礼

回答をありがとうございました。
FileSystemObjectを使うことは気が付きませんでした。

お礼日時:2008/11/03 21:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!