No.3ベストアンサー
- 回答日時:
自作ツールの一部なのですが如何でしょうか。
Public Function FindPath(ByVal FindTopPath As String) As String
Dim scrptFldr As Scripting.Folder
Dim scrptFile As Scripting.File
Dim R As Long
On Error GoTo Err_FindPath
DoEvents
'ファイル
For Each scrptFile In zzFSO.GetFolder(FindTopPath).Files
R = R + 1
Cells(R, 1) = "F"
If Right$(FindTopPath, 1) <> "\" Then
Cells(R, 3) = FindTopPath
Else
Cells(R, 3) = FindTopPath
End If
Cells(R, 4) = scrptFile.Name
Cells(R, 5) = scrptFile.Size / 1024
Cells(R, 6) = scrptFile.DateCreated
Cells(R, 7) = scrptFile.DateLastModified
Cells(R, 8) = scrptFile.DateLastAccessed
Next
'フォルダ
For Each scrptFldr In zzFSO.GetFolder(FindTopPath).SubFolders
R = R + 1
Cells(R, 1) = "D"
If Right$(FindTopPath, 1) <> "\" Then
Cells(R, 3) = FindTopPath & "\" & scrptFldr.Name
Else
Cells(R, 3) = FindTopPath & scrptFldr.Name
End If
Cells(R, 4) = "○"
Cells(R, 5) = scrptFldr.Size / 1024
Cells(R, 6) = scrptFldr.DateCreated
Cells(R, 7) = scrptFldr.DateLastModified
Cells(R, 8) = scrptFldr.DateLastAccessed
'ネスト
If zzNextFlag = True Then
FindPath = FindPath(scrptFldr.Path)
If FindPath <> "" Then
Exit Function
End If
Else
End If
Next
Exit Function
Err_FindPath:
If zzFldrName1 <> FindTopPath & scrptFldr.Name Then
zzCountX = zzCountX + 1
Cells(R, 3) = FindTopPath & "\" & scrptFldr.Name
Cells(R, 4) = "●"
Cells(R, 6) = scrptFldr.DateCreated
Cells(R, 7) = scrptFldr.DateLastModified
Cells(R, 8) = scrptFldr.DateLastAccessed
End If
zzFldrName1 = FindTopPath & "\" & scrptFldr.Name
Resume Next
End Function
<追記>
宜しければ、参考URL配下の「UiK4010 ファイル検索.xls」をダウンロードし試行してみて下さい。
⇒便利ツール⇒UiK4010 ファイル検索.xls
以上
参考URL:http://cid-30eb9f2aea0e6b00.office.live.com/docu …
No.2
- 回答日時:
こういう感じでしょうか。
Sub メイン()
Dim シート As WorkSheet
Dim 行 As Long
Dim シェル As Object
Dim フォルダ As Object
Dim オブジェクト As Object
Set シート = ThisWorkbook.WorkSheets(1)
行 = 0
Set シェル = CreateObject("Shell.Application")
Set フォルダ = シェル.Namespace("C:\hoge~")
For Each オブジェクト In フォルダ.Items
行 = 行 + 1
シート.Cells(行, 1) = オブジェクト.Name
シート.Cells(行, 2) = IIf(オブジェクト.IsFolder, "フォルダ", "ファイル")
Next
End Sub
もし、サブフォルダ内を更に追求するなら、
フォルダ内オブジェクトを列挙する部分を
別プロシージャとして再帰的に呼び出せば
よいでしょう。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) Excel VBA 3 2023/04/22 10:46
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- その他(Microsoft Office) OneDrive Personalについて 1 2022/08/02 18:25
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Visual Basic(VBA) Excel VBA ファイル取得について フォルダの中に、ファイル名“会議“を含むファイルが1つまた 9 2022/10/12 01:18
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
実行時エラー 3265「要求された...
-
VBAからPDFファイルにパスワー...
-
エクセルマクロエラー「'Cells'...
-
VBAで Set wb = Sheets(1).Cop...
-
VBAで既に開いている別アプリケ...
-
VBAで作成するメール(開封確認...
-
VBで引数にDictionaryオブジェ...
-
ローカル変数を戻り値に使うと...
-
PowerPointVBAでスライドマスタ...
-
[C#]static void 関数内でthis
-
ある文字列が全て数字であるか...
-
【VB】【エクセル操作】 SaveAs...
-
UserForm1.Showでエラーになり...
-
Excelでフィルタをかけると警告...
-
Excel VBA Collection.add で R...
-
C#でオブジェクトの配列を使う
-
AccessVBAで「dim dbs as datab...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
実行時エラー 3265「要求された...
-
VBAで既に開いている別アプリケ...
-
PowerPointVBAでスライドマスタ...
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルマクロエラー「'Cells'...
-
ある文字列が全て数字であるか...
-
VBAについてです。 初心者です...
-
VBScriptでファイルの日時順(降...
-
Excelでフィルタをかけると警告...
-
VBAからPDFファイルにパスワー...
-
VBで引数にDictionaryオブジェ...
-
このように書くべきですか? { ...
-
EXCEL VBA オートシェイプナン...
-
テキストボックス中の文字列の...
-
エクセルVBAでcode128のバー...
-
[VBA]CDOメッセージ送信エラー
-
オブジェクトが見つかりません
おすすめ情報