
エクセルのVBAであるフォルダ以下の全てのファイル名と更新時間をエクセルシート上に表示させたく、以下のプログラムを作成したのですが 、サブフォルダ内のファイルを表示させることができません。何か良い方法がありましたら教えていただけないでしょうか?宜しくお願いいたします。
Sub SAMPLE()
Dim serchPass As String
j = 1
Mypath = "C:\My Documents\"
MyName = Dir(Mypath, vbDirectory)
Do While MyName <> "" ' ループを開始します。
' 現在のフォルダと親フォルダは無視します。
If MyName <> "." And MyName <> ".." Then
' ビット単位の比較を行い、MyName がフォルダかどうかを調べます。
If (GetAttr(Mypath & MyName) And vbDirectory) = vbDirectory Then
Debug.Print MyName ' フォルダであれば、それを表示します。
Else: GoTo 10
End If
serchPass = Mypath & MyName
With Application.FileSearch
.NewSearch
.LookIn = serchPass
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Cells(i + j, 1).Value = .FoundFiles(i)
Cells(i + j, 3) = FileDateTime(.FoundFiles(i))
Next i
j = i + j
End If
End With
10
End If
MyName = Dir ' 次のフォルダ名を返します。
Loop
End Sub
No.1ベストアンサー
- 回答日時:
やりたい事は FileSearch で .SearchSubFolders = True にするのと違う事でしょうか?
Sub Test()
Dim i as Long
With Application.FileSearch
.NewSearch
.LookIn = "C:\My Documents"
.FileType = msoFileTypeAllFiles
.SearchSubFolders = True
If .Execute() > 0 Then
For i = 1 To .FoundFiles.Count
Cells(i + 1, 1) = .FoundFiles(i)
Cells(i + 1, 3) = FileDateTime(.FoundFiles(i))
Next i
End If
End With
End Sub
早速のご回答ありがとうございます。
これです。これ。
これをやりたくていろいろ調べて作ってみたのが、質問のところに載せたものです。全然短いプログラムで済んでしまうんですね。
ただ、インターネットのショートカットファイルで「プロシージャの呼び出し、または引数が不正です」となり、止まってしまいますが、これは直せないでしょうか?
宜しくお願いします。
No.2
- 回答日時:
#1です。
ショートカットの場合 FileSearch の FoundFiles には、ショートカット先のパス(やURL)が返るようです。
ショートカットファイルそのものを取得する方法は知りません。
For i = 1 To .FoundFiles.Count
On Error Resume Next
Cells(i + 1, 1) = .FoundFiles(i)
Cells(i + 1, 3) = FileDateTime(.FoundFiles(i))
Next i
のように逃げるとか。。
あと、私自信は使った事ないのですが、ファイルシステムオブジェクトを使うと FileSearch よりもっと高度な事が出来るようですよ。
http://www6.plala.or.jp/MilkHouse/practical/cont …
参考URL:http://www6.plala.or.jp/MilkHouse/practical/cont …
papayuka様、何度もすみません。
「On Error Resume Next」で逃げることにします。ファイルシステムオブジェクトについては今後勉強していこうと思います。
お世話になりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cドライブ直下にコピーってどう...
-
よく分からない
-
フォルダの中に入れた順になら...
-
解凍後の.zipファイルは消して...
-
誤ってAdobe ReaderでZIPファ...
-
【初心者です】izhというファイ...
-
CドライブのAPSETUPフォルダは...
-
起動してるソフトは終了してか...
-
ファイルを閉じても開いている...
-
Geek Uninstaller と Revo Unin...
-
不具合、Win10でWinShotを使わ...
-
FileZilla FTP Client について
-
ダウンロード版エロゲの解凍時...
-
写真(jpgファイル)をトリ...
-
エクセルのVBAでクリップボード...
-
解凍について教えてください。
-
Excelで「同じ名前のファイルが...
-
アプリケーションエラー0xc0000...
-
サンダーバードのメール削除
-
ファイルを開くのが遅い。ただ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
よく分からない
-
Cドライブ直下にコピーってどう...
-
Macでフォルダを添付できないで...
-
iPhoneの写真をパソコンに取り...
-
ブックマークの順番を最新順に...
-
ホームディレクトリ直下のフォ...
-
Macで今あるファイルの連番(ペ...
-
漢字の共有ホルダが認識されない
-
Windows10でのファイルの並び替...
-
ことえりのアイコン
-
ImgBurnで「イメージファイルの...
-
メールダウンロードフォルダの場所
-
mac デスクトップのファイル名...
-
メールの添付ファイル名が長す...
-
右クリック、新規作成にメモ帳...
-
マックの壁紙ってどこにあるの...
-
DRVSTOREの役割を教えて下さい。
-
iMovie Sound Effects データ保...
-
ファイル名、パス名の長さの最大
-
Macのフォルダ画像の素材でオス...
おすすめ情報