VBAでアクティブなファイルのフォルダ(サブフォルダを含む)のファイル一覧を
作成したいと思っています。
以下のサイトを参考にして、パス、ファイル名を落とすまではできました。
http://okwave.jp/qa3544575.html
===
Sub test()
Application.ScreenUpdating = False
Sheet1.Cells.Clear
Sheet1.Cells(1, 1) = "パス"
Sheet1.Cells(1, 2) = "ファイル名"
files "d:\", 2
Application.ScreenUpdating = True
End Sub
Sub files(path As String, ByRef row As Long)
DoEvents
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim f As Object
For Each f In fso.GetFolder(path).files
Sheet1.Cells(row, 1) = path
Sheet1.Cells(row, 2) = f.Name
row = row + 1
Next
For Each f In fso.GetFolder(path).SubFolders
files f.path, row
Next
Set fso = Nothing
End Sub
===
>files "d:\"
の箇所を修正して、アクティブなブックを参照しようとしてみたのですが、
なかなか上手くいきません。
また、できれば *.xls などファイルの種類を指定したいのです。
filesearchを使用して組んだ時は
「AAA = ActiveWorkbook.path」「Filetype ~ 」
などでそれらの指定ができたのですが、上記に応用する事ができません。
どなたかご教示頂けますよう、よろしくお願いいたしますm(_ _)m
No.1ベストアンサー
- 回答日時:
>アクティブなファイル
と言うのがわからないのですが、filesearchはoffice2007で廃止になったそうです。
http://support.microsoft.com/kb/935402/ja
で、FileSystemObjectかdirで求めるのが良いと思い、dirに書き換えてみました。
ところが、何故かエラーが出ます。
調べたら、丸の中にRみたいな特殊な文字でエラーしているようなので、あきらめました。
と言うわけで、ワイルドカードではありませんが、拡張子(と言うか、右側の文字)で選択できるようにしました。
Sub test()
Sheet1.Cells.Clear
Sheet1.Cells(1, 1) = "パス"
Sheet1.Cells(1, 2) = "ファイル名"
files "D:\", 2, ".xls"
MsgBox "終了"
End Sub
Sub files(path As String, ByRef row As Long, mask As String)
DoEvents
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim f As Object
For Each f In fso.GetFolder(path).files
If UCase(Right(f.Name, Len(mask))) = UCase(mask) Then
Sheet1.Cells(row, 1) = path
Sheet1.Cells(row, 2) = f.Name
row = row + 1
End If
Next
For Each f In fso.GetFolder(path).SubFolders
files f.path, row, mask
Next
Set fso = Nothing
End Sub
なるほど、そちらに付ければよろしいのですね。
初心者のため右往左往しておりますが、勉強になりました^^
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaの構文の修正相談(xmlファイルを順に開いてコピペ作業) 1 2023/04/22 01:18
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Excel(エクセル) VBA フォルダ見える化のコードについて 2 2023/06/19 15:04
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
ExcelのVBAで上書き保存を確...
-
ExcelVBAの使い方 ¥の使い方...
-
初心者powershellのPS1ファイル...
-
VBAでパワーシェルを実行したい...
-
開いているファイルを削除し、...
-
Excel 相対パス
-
VBA★PDFをPDFアプリで印刷し...
-
Excel2010VBAでエラーが出る相...
-
C#でのProcess.Startと変数path
-
SaveAsの保存先について
-
相対パスが使えない
-
【VB.NET】App.configにファイ...
-
ShellExecuteでエクセルファイ...
-
コマンドプロンプトのコピー関...
-
vb.netについて。 環境visual s...
-
fopenでのパス指定
-
Objective-CのNSTaskの引数に全...
-
エクセルのファイルオープン時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルvbaでdocuworksprinter...
-
バッチファイル 二つ上のディ...
-
VBAでパワーシェルを実行したい...
-
VBA一覧取得 再投稿
-
【VB.NET】App.configにファイ...
-
エクセルVBAで一つ上の階層...
-
初心者powershellのPS1ファイル...
-
ExcelVBAの使い方 ¥の使い方...
-
EXCEL(VBA)で指定フォルダ内の...
-
SaveAsの保存先について
-
Excel 相対パス
-
パスワード保護されたExcelファ...
-
【VBA】ExcelマクロでCSVファイ...
-
xcopyコマンドの進行状況を表示...
-
エクセルのマクロで特定フォル...
-
VBA★PDFをPDFアプリで印刷し...
-
VBS パスに変数を入れたい
-
コマンドプロンプトのコピー関...
-
【VBA】複数のtxtファイルから...
-
開いているファイルを削除し、...
おすすめ情報