プロが教えるわが家の防犯対策術!

現在、1000ファイル以上のエクセルファイルがあります。
各エクセルに何シートずつあるのか数を数えたいのですが、1回1回開いて数えるしかないでしょうか?

なにか良い方法があったら教えてください。

A 回答 (2件)

 それらのファイルが全部同じフォルダ、またはあるフォルダのサブフォルダ群に入っているなら、ExcelVBAで自動集計ができる。



 実行できる全ソースを掲載する事はできないので、キーワードを載せておく。興味があったら色々調べてみると良いだろう。

・FileSystemObjects
・再帰(サブフォルダ分けしている場合のみ)
・Excel.Workbooks(n).Name
・Excel.Workbooks(n).Worksheets.Count
    • good
    • 0
この回答へのお礼

ありがとうございます。参考にさせて頂きます。
まだ悪戦苦闘中ですが、頑張ります!

お礼日時:2005/06/25 11:52

“1回1回開いて数える”をマクロにしてみました。

新規のブックにこのマクロを貼り付けて、対象ファイルのあるフォルダーに格納してマクロを実行してみてください。時間はかかると思います。

Sub SheetsCount()
Dim i As Long
Dim MySheet As Worksheet

Set MySheet = ThisWorkbook.Worksheets("Sheet1")

With Application.FileSearch
.LookIn = ThisWorkbook.Path
.SearchSubFolders = True
.Filename = "*.xls"

If .Execute > 0 Then
MySheet.Cells(1, 1).Value = "ファイル名"
MySheet.Cells(1, 2).Value = "シート数"
For i = 1 To .FoundFiles.Count
If Not (.FoundFiles(i) = ThisWorkbook.FullName) Then
MySheet.Cells(i + 1, 1).Value = .FoundFiles(i)
Workbooks.Open Filename:=.FoundFiles(i), _
UpdateLinks:=False, ReadOnly:=True
MySheet.Cells(i + 1, 2).Value = ActiveWorkbook.Sheets.Count
ActiveWorkbook.Close
End If
Next
End If
End With
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。参考にさせて頂きます。
まだ悪戦苦闘中ですが、頑張ります!

お礼日時:2005/06/25 11:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!