Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
ファイルサイズが読み取れない
投稿日時: 20/08/08 09:10:15
投稿者: バルバロッサ

いつもお世話になっております。
現在、外付けHD内のデータ整理を行っています。
そこでフォルダと、フォルダ名とファイル名とファイルサイズをエクセルに表示できるようにMacroを組んだのですが、フォルダ名とファイル名を読み込めるのに、ファイルサイズを一部読めないものがあります。
ファイル名が読めるのに、なぜそのファイルサイズが読めないのだろうかと、思案しています。
下記に、コードを示します。
Sub GetFolderList()
 
Dim fso As Object
Dim find_path As String
Dim cf As Variant
Dim i As Long
 
On Error Resume Next
 
    find_path = "F:\data" '←取得したいフォルダパスを指定する
 
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set cf = fso.getfolder(find_path)
 
    i = 1
    For Each f In cf.Files
        Cells(i, 1) = f.Path
        Cells(i, 2) = f.Name
        Cells(i, 3) = FileLen(f.Path)
        i = i + 1
    Next
 
End Sub
 
イメージとしては、Windows内のフォルダを開いたときに、
ファイル名、サイズ、更新日時などが見れるようなものをエクセルに取り込みたいと思っております。
何か良い解決策はございませんか?
よろしくお願い申し上げます。

回答
投稿日時: 20/08/08 10:14:39
投稿者: WinArrow
投稿者のウェブサイトに移動

ファイルサイズが取得できない原因は、
回答者には、あなたのPCは見えませんから、原因は自分で調査してください。
 
なお、更新年月日などを求めるのは
FSOの中のFileのプロパティを調べてください。
 
 
FSO FILE プロパティ
で検索すれば、ヒットすると思います。

回答
投稿日時: 20/08/08 12:06:16
投稿者: simple

確認です。
(1)FSOの f.size を使っても結果は同じですか?
(2)On Error Resume Nextをコメントにして無効化しても、結果は同じですか?
(3)そうした事象が起きるファイルに共通した特徴はありませんか?

投稿日時: 20/08/10 09:55:02
投稿者: バルバロッサ

WinArrowさん、Simpleさん
 
お返事が遅くなり大変申し訳ありませんでした。
まず、読み取れなかった原因(かどうかわかりませんが)は、ファイルの共通点では、認識できなさそうな文字が入っていました。例えば、一部のファイルには”ダイヤ”のマークが入っていました。
次に、f.sizeで、あっさり解決しました。
最後に、On Error Resume Nextをコメントにして無効化しました。
結果は途中でプログラムが止まってしまいました。
以前、読み取れなかったファイルに関しては、その部分を飛ばすために付与したので、原因は読み取れないファイルがあるようでした。
 
皆様のお陰様で、10000以上あったファイルが片付けられ、HDの中がすっきりしました。
ありがとうございました。