エクセル2016を使っておりますが、「2018」というフォルダの中にある全サブフォルダ中のテキストファイルを指定するコードについて伺います。
「2018」フォルダ直下にあるテキストファイルを指定するには以下のコードで良いと思うのですが、「2018」フォルダ内にある全サブフォルダ内のファイルを指定するには、どのようにコードを書けば良いでしょうか?
どなたかご教示いただけますようお願いいたします。
Const FolderPath As String = "C:\2018"
Dim Filename As String
Dim Sh0 As Worksheet, Sh As Worksheet
~
Set Sh0 = ActiveSheet
Filename = Dir(FolderPath & "\*.TEXT")
No.2ベストアンサー
- 回答日時:
ご質問の「指定する」という意味がよくわからないのですが、具体的に何を示しているのでしょうか。
直下のファイルは要らないというなら、*親と書いてある列をコメントアウトすれば可能です。
↓アポストロフィ(シングルクォーテーション)を入れること。
' Call ShowFiles(objFolder.Files) '親*
Option Explicit
Dim objFS As Object
Dim i As Long
Sub FileSearch()
Dim objFolder As Object
Dim dest As String
i = 0
ThisWorkbook.Activate
ActiveSheet.UsedRange.Clear
Dim DirName: DirName = "C:\2018\" 'ユーザー設定
Set objFS = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFS.getfolder(DirName)
Call ShowFiles(objFolder.Files) '親*
Call ShowFolder(objFolder)
MsgBox "終了", vbInformation
End Sub
Sub ShowFiles(ByRef objFiles)
Dim f
For Each f In objFiles
If LCase(f) Like "?*.txt" Then
Cells(1 + i, 1).Value = f
i = i + 1
End If
Next
End Sub
Sub ShowFolder(ByVal objFolder)
Dim objSubs As Object, oSb '子
Dim eaFiles As Object
Set objSubs = objFolder.Subfolders
For Each oSb In objSubs
Set eaFiles = oSb.Files
Call ShowFiles(eaFiles)
Call ShowFolder(oSb)
Next
End Sub
No.1
- 回答日時:
dir関数使うなら、こんな感じ
http://officetanaka.net/excel/vba/file/file07.htm
ファイルパスを指定の場所、拡張子を.txtに変更してください。
大文字、小文字を識別しますので、混在している場合はlcaseなどで、変換して判定するひつようがあるかもしれません。
その後、何らかのファイル処理等を行うのであれば、(個人的には)FSO使うほうが楽だと思います。
http://officetanaka.net/excel/vba/filesystemobje …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/09 10:33
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) Excel VBA 複数ブックシートごとにデータを統合する方法について 4 2022/05/20 14:23
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/02/21 11:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
Excel 相対パス
-
A列に記載されているフォルダ...
-
エクセルVBAで一つ上の階層...
-
パスワード保護されたExcelファ...
-
【VBA】ExcelマクロでCSVファイ...
-
AccessからExcel最小化
-
C#でのProcess.Startと変数path
-
fopenでのパス指定
-
【Excel VBA】Power Qurry のソ...
-
実行ファイルのパスを取得したい
-
Cの関数で自分自身のパス取得
-
エクセルのマクロで特定フォル...
-
【VBA】複数のtxtファイルから...
-
VBAとResgen.exeを使用して、re...
-
初心者powershellのPS1ファイル...
-
header(Location)で相対URL...
-
Excel VBAでテキストファイルを...
-
ExcelVBAの使い方 ¥の使い方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイル 二つ上のディ...
-
エクセルvbaでdocuworksprinter...
-
Excel 相対パス
-
エクセルVBAで一つ上の階層...
-
xcopyコマンドの進行状況を表示...
-
初心者powershellのPS1ファイル...
-
【VB.NET】App.configにファイ...
-
【VBA】ExcelマクロでCSVファイ...
-
エクセルのマクロで特定フォル...
-
VBA★PDFをPDFアプリで印刷し...
-
パスワード保護されたExcelファ...
-
SaveAsの保存先について
-
ExcelVBAの使い方 ¥の使い方...
-
Windows PowerShellでscoopコマ...
-
開いているファイルを削除し、...
-
VBS パスに変数を入れたい
-
C#でのProcess.Startと変数path
-
コマンドプロンプトのコピー関...
-
EXCEL(VBA)で指定フォルダ内の...
-
実行ファイルのパスを取得したい
おすすめ情報