回答編集履歴

2

追記

2018/06/01 05:39

投稿

ttyp03
ttyp03

スコア16998

test CHANGED
@@ -52,6 +52,10 @@
52
52
 
53
53
  以下は[こちら](http://officetanaka.net/excel/vba/tips/tips27.htm)のページを参考に手を加えたものです。参考まで。
54
54
 
55
+ と思って追記したのですが、ファイル数が多いとうまく使えなさそうなのでこれは無しということで。
56
+
57
+ 一応情報としては残しておきます。
58
+
55
59
  ```VBA
56
60
 
57
61
  Sub test()

1

追記

2018/06/01 05:39

投稿

ttyp03
ttyp03

スコア16998

test CHANGED
@@ -43,3 +43,63 @@
43
43
 
44
44
 
45
45
  もしくはこの手の処理はVBAでやるよりもVBScriptにして、コマンドラインから実行、結果をCSVに吐き出す、の方がよっぽど速いような気もします。
46
+
47
+
48
+
49
+ 追記
50
+
51
+ ファイルを抽出する処理は、コマンドを利用する手もあります。
52
+
53
+ 以下は[こちら](http://officetanaka.net/excel/vba/tips/tips27.htm)のページを参考に手を加えたものです。参考まで。
54
+
55
+ ```VBA
56
+
57
+ Sub test()
58
+
59
+
60
+
61
+ ' ファイルの一覧を取得
62
+
63
+ Dim WSH, wExec, sCmd As String, Result As String
64
+
65
+ Set WSH = CreateObject("WScript.Shell")
66
+
67
+ sCmd = "dir /b /s C:\hoge*.txt" ' ここには選択した"フォルダ名+*.txt"を指定する
68
+
69
+ Set wExec = WSH.Exec("%ComSpec% /c " & sCmd)
70
+
71
+ Do While wExec.Status = 0
72
+
73
+ DoEvents
74
+
75
+ Loop
76
+
77
+ Result = wExec.StdOut.ReadAll
78
+
79
+ Set wExec = Nothing
80
+
81
+ Set WSH = Nothing
82
+
83
+
84
+
85
+ ' ファイル一覧文字列を改行コードで分割
86
+
87
+ Files = Split(Result, vbCrLf)
88
+
89
+
90
+
91
+ ' 1ファイルずつ取り出すループ
92
+
93
+ For Each f In Files
94
+
95
+ ' ここでファイルごとの処理をする
96
+
97
+ Debug.Print f
98
+
99
+ Next
100
+
101
+ End Sub
102
+
103
+
104
+
105
+ ```