こんにちは。
すでに回答が出ていますが、同じ方法で作られています。
内容的には、わざわざ、FileSystemObject を使うほどのものではありません。
>.SearchSubFolders = False
ということなら、そんなに難しく考えなくてよいです。
ただ、以下は、セルにファイル名を出すことも考えているので、余計なら取り去ってください。
それと、FileSearch のファイル検索では、拡張子が、"xls" も"xlsx" も同等として扱ってしまうような記憶があります。同じ挙動にするなら、「And StrComp(Right(fName, 3), "xls", 1) = 0 」は不要です。
また、Auto_Openで、シートを指定していないのは、ちょっと問題アリかなと思います。
'//
Const FPATH = "C:\指示\記入済"
Sub TestMacro1()
Dim fName As String
Dim cnt As Long
'Dim i As Long
fName = Dir(FPATH & "*.xls")
Do While fName <> ""
If fName <> "." And fName <> ".." Then
If (GetAttr(FPATH & fName) And vbDirectory) = vbNormal _
And StrComp(Right(fName, 3), "xls", 1) = 0 Then
'i = i + 1
'Cells(i, 1).Value = fName '←ファイル名を出力する場合
cnt = cnt + 1
End If
End If
fName = Dir
Loop
Cells(1, 21).Value = cnt
Cells(1, 21).NumberFormat = "0000"
End Sub
'//
Dir関数を用いて、こんな感じでどうでしょうか。
-----
Public Const FPath = "C:\指示\記入済"
'xlsファイル検索
Sub Auto_Open()
Dim tmp as String
Dim i as Long
tmp = Dir(FPath & "¥*.xls")
Do While tmp <> ""
i = i + 1
Dir()
Loop
Cells(1, 21).Value = i+1
Cells(1, 21).NumberFormat = "0000"
End Sub
質問者
補足
回答ありがとうございます。
早速やってみましたら
コンパイルエラー:
構文エラー
がでてDir()の部分が選択されていました><;
OKと押したら
Sub Auto_Open()の行が黄色くなってました;;
お礼
tmp = Dir() にしたら無事数字が動くようになりました!ありがとうございます><
補足
ありがとうございます! 無事連番が表示されるようになりました! ただ、私の情報不足が原因かもしれませんが 他でエラーが><(ファイル保存するときにもVBAをつかっていたのです) こちらに書くよりもしっかりと質問をこれから再度書きます><すみません。。