teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

コード追記

2019/09/17 07:28

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -39,4 +39,29 @@
39
39
  End Sub
40
40
  ```
41
41
 
42
- RunTestCopyDataがエラーなく実行されることが確認出来たら、ループ処理のコーディング移行します。
42
+ RunTestCopyDataがエラーなく実行されることが確認出来たら、ループ処理のコーディング移行します。
43
+
44
+ ---
45
+ CopyDataプロシージャが問題なく実行できたら、ループ処理は下記のようになります。
46
+ list.xlsxのパスは実際のものに変更してください。
47
+
48
+ ```vba
49
+ Sub CopyBooksData()
50
+ Application.ScreenUpdating = False
51
+
52
+ Dim listWB As Workbook
53
+ Set listWB = Workbooks.Open("C:\test\list.xlsx")
54
+ Dim listLastrow As Long
55
+ listLastrow = listWB.Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
56
+ Dim listRng As Range
57
+ Set listRng = listWB.Worksheets("Sheet1").Range("A1").Resize(listLastrow)
58
+
59
+ Dim wbPathRng As Range
60
+ For Each wbPathRng In listRng
61
+ Call CopyData(wbPathRng.Value)
62
+ Next
63
+
64
+ listWB.Close False
65
+ Application.ScreenUpdating = True
66
+ End Sub
67
+ ```

1

コード修正

2019/09/17 07:28

投稿

hatena19
hatena19

スコア34367

answer CHANGED
@@ -15,21 +15,20 @@
15
15
  Dim SourceWB As Workbook
16
16
  Set SourceWB = Workbooks.Open(wbPath)
17
17
  Dim SourceLastrow As Long
18
- SourceLastrow = SourceWB.Cells(Rows.Count, "A").End(xlUp).Row
18
+ SourceLastrow = SourceWB.Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
19
- 'コピー元データコピー
20
- SourceWB.Worksheets("Sheet1").Range("A" & 1 & ":A" & SourceLastrow).Copy
21
19
 
20
+ SourceWB.Worksheets("Sheet1").Range("A1").Resize(SourceLastrow).Copy
21
+
22
22
  Dim TargetWB As Workbook
23
- Set TargetWB = ThisWorkBook
23
+ Set TargetWB = ThisWorkbook
24
24
  Dim TargetLastrow As Long
25
- TargetLastrow = TargetWB.Cells(Rows.Count, "A").End(xlUp).Row
25
+ TargetLastrow = TargetWB.Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row
26
- '貼り付け先にペースト
26
+
27
- TargetWB.Worksheets("Sheet1").Cells(TargetLastrow + 1, 1).PasteSpecial _
27
+ TargetWB.Worksheets("Sheet1").Cells(TargetLastrow, 1).PasteSpecial _
28
28
  xlPasteValuesAndNumberFormats
29
29
 
30
- Application.CutCopyMode = False
30
+ Application.CutCopyMode = False
31
31
  SourceWB.Close False
32
-
33
32
  End Sub
34
33
 
35
34
  '上記プロシージャの動作確認