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...
-
エクセルVBAで一つ上の階層...
-
初心者powershellのPS1ファイル...
-
Excel 相対パス
-
デスクトップなど特殊フォルダ...
-
VBAでパワーシェルを実行したい...
-
VBAとロングファイル名
-
ExcelのVBAで上書き保存を確...
-
エクセルのマクロで特定フォル...
-
開いているファイルを削除し、...
-
コマンドプロンプト 半角スペー...
-
パスワード保護されたExcelファ...
-
EXCEL(VBA)で指定フォルダ内の...
-
VBA★PDFをPDFアプリで印刷し...
-
【続き】windowsペイントを開く...
-
VB2005 でパス名が誤っていない...
-
エクセルの二重起動をやめたい
-
ファイルがオープンできない
-
A列に記載されているフォルダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
エクセルVBAで一つ上の階層...
-
Excel 相対パス
-
【VB.NET】App.configにファイ...
-
xcopyコマンドの進行状況を表示...
-
【VBA】ExcelマクロでCSVファイ...
-
EXCEL(VBA)で指定フォルダ内の...
-
エクセルのマクロで特定フォル...
-
パスワード保護されたExcelファ...
-
ExcelVBAの使い方 ¥の使い方...
-
開いているファイルを削除し、...
-
SaveAsの保存先について
-
初心者powershellのPS1ファイル...
-
VBA★PDFをPDFアプリで印刷し...
-
fopenでのパス指定
-
【Excel VBA】Power Qurry のソ...
-
指定したフォルダ内の最新ファ...
-
A列に記載されているフォルダ...
-
ExcelのVBAで上書き保存を確...
おすすめ情報