回答編集履歴
1
同様の質問とその回答を見つけました。
answer
CHANGED
@@ -1,51 +1,4 @@
|
|
1
|
-
私も
|
1
|
+
私も同様な質問をして、回答いただきました。質問者さまにも役立つかもしれませんので
|
2
|
+
参照してみてください。
|
2
3
|
|
3
|
-
```Excel VBA
|
4
|
-
|
5
|
-
Option Explicit
|
6
|
-
|
7
|
-
'「data」フォルダにあるファイルを開いて、その内容をこのワークブックにまとめる
|
8
|
-
Sub importData()
|
9
|
-
Dim fso As FileSystemObject
|
10
|
-
Set fso = New FileSystemObject
|
11
|
-
|
12
|
-
|
13
|
-
Dim f As File
|
14
|
-
For Each f In fso.GetFolder(ThisWorkbook.Path & "\data").Files 'dataフォルダにあるファイルを1つずつ開いて処理
|
15
|
-
With Workbooks.Open(f.Path)
|
16
|
-
Dim bkName As String
|
17
|
-
bkName = .Name
|
18
|
-
|
19
|
-
Dim i As Long
|
20
|
-
For i = 1 To Worksheets.Count ' 全シートを処理する
|
21
|
-
With .Worksheets("Sheet" & i)
|
22
|
-
|
23
|
-
'----------データの複写先のシートの最終行を取得--------------------
|
24
|
-
Dim wsResult As Worksheet
|
25
|
-
Set wsResult = ThisWorkbook.Worksheets("Sheet" & i) 'データの複写先のシート
|
26
|
-
|
27
|
-
Dim LastRow As Long
|
28
|
-
LastRow = wsResult.Cells(Rows.Count, 3).End(xlUp).row 'データの複写先のシートの最終行
|
29
|
-
|
30
|
-
'------開いたシートの使用されている範囲を、複写先シートの最終行の次行にコピーする A列とB列は空欄にしておく------------
|
31
|
-
|
4
|
+
https://teratail.com/questions/171219#
|
32
|
-
|
33
|
-
'------データを追加した範囲のA列B列にブック名から抜き出した情報を書き込む------------
|
34
|
-
Dim LastRow2 As Long
|
35
|
-
LastRow2 = wsResult.Cells(Rows.Count, 3).End(xlUp).row 'データの複写先のシートの最終行を再び取得して
|
36
|
-
wsResult.Range(wsResult.Cells(LastRow + 1, 1), wsResult.Cells(LastRow2, 1)).Value = Left(bkName, 2)
|
37
|
-
wsResult.Range(wsResult.Cells(LastRow + 1, 2), wsResult.Cells(LastRow2, 2)).Value = Mid(bkName, 3, 2)
|
38
|
-
|
39
|
-
End With
|
40
|
-
Next i
|
41
|
-
.Close
|
42
|
-
|
43
|
-
End With
|
44
|
-
|
45
|
-
Next f
|
46
|
-
|
47
|
-
End Sub
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
```
|