|
フォルダを指定して、ファイル名、シート名を取得。のサンプルです。
非常に似ている処理なので、参考になると思います。
フォルダの中に、xlsファイルを何個か用意してお試し下さい。
'Application.ScreenUpdating = False
のコメントを解除すると画面表示の更新が停止して
ちらつかなくなります。
Sub Sample()
Dim myObj As Object
Dim myFileName As String
Dim myDir As String
Dim mySheet As Worksheet
'Application.ScreenUpdating = False
With ThisWorkbook.ActiveSheet
Set myObj = CreateObject("Shell.Application"). _
BrowseForFolder(0, "フォルダを選択してください", 0)
If myObj Is Nothing Then Exit Sub
myDir = myObj.Items.Item.Path & "\"
myFileName = Dir(myDir & "*", vbHidden + vbSystem)
Do
Workbooks.Open myDir & myFileName
For Each mySheet In ActiveWorkbook.Worksheets
.Cells(Rows.Count, 1).End(xlUp).Offset(1).Value = myFileName
.Cells(Rows.Count, 2).End(xlUp).Offset(1).Value = mySheet.Name
Next mySheet
Workbooks(myFileName).Close False
myFileName = Dir()
Loop Until myFileName = vbNullString
.Range("A1").Value = "ファイル名"
.Range("B1").Value = "シート名"
.Columns("A:B").AutoFit
'Application.ScreenUpdating = True
End With
End Sub
|
|