|
▼INA さん:
>各ブックのシートは1つだけでしょうか?
ひとつだけです。
>だとすれば、Worksheets(1) で指定できますが・・・
>
新規エクセルのファイル上で教えていただいたマクロを実行したところ
このファイルの各シートに反映されるのではなくsheet1のA1番地から
下記のようにずらっとデータではなくファイル名が表記されてしまいました。
マクロの実行に問題があるのでしょうか?
複数のファイルを1つのファイルに結合させたく、結合前にファイル名にある文字をふくむものと毎回指定することによりデータを各シートに反映させたいとおもっております。
お手間かけますがよろしくご教授ねがいます。
a1.xls Sheet1
a1.xls Sheet2
a1.xls Sheet3
a2.xls Sheet1
a2.xls Sheet2
a2.xls Sheet3
a3.xls Sheet1
a3.xls Sheet2
a3.xls Sheet3
b1.xls Sheet1
b1.xls Sheet2
b1.xls Sheet3
b2.xls Sheet1
b2.xls Sheet2
b2.xls Sheet3
c1.xls Sheet1
c1.xls Sheet2
c1.xls Sheet3
ファイル結合.xls a1.xls
ファイル結合.xls Sheet2
ファイル結合.xls Sheet3
>Sub Sample()
>Dim myObj As Object
>Dim myFileName As String
>Dim myDir As String
>Dim mySheet As Variant
>
>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.Sheets
> .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
|
|