質問編集履歴

2

意図的に内容を抹消する行為にあたるため

2021/06/08 08:30

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- aaaaaaaaaa
1
+ VBA 複数のブックから複数のシートをまとめたい
test CHANGED
@@ -1,3 +1,139 @@
1
- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
1
+ ### 前提・実現したいこと
2
2
 
3
+ VBAで複数のブックから複数のシートを一つのブックにまとめたい。
4
+
5
+ ### 発生している問題・エラーメッセージ
6
+
7
+ ブックによってとりだしたいシートが1つの時と2つの時があるのですが2つめがあった場合は2つめもまとめてなかった場合はスルーしたいのですがスルーができません。
8
+
9
+ また、シート名をブック名にしたいのですが2つめがあった場合は[ブック名.2]としたいのですがその指定もできません。
10
+
11
+ エラーメッセージ
12
+
13
+ ### 該当のソースコード
14
+
15
+ ```ここに言語名を入力
16
+
17
+ VBA
18
+
19
+ ソースコード
20
+
21
+ Sub Sample()
22
+
23
+ Dim sFile As String
24
+
25
+ Dim sWB As Workbook, dWB As Workbook
26
+
27
+ Dim dSheetCount As Long
28
+
29
+ Dim i As Long
30
+
31
+ Const SOURCE_DIR As String = "フォルダ"
32
+
33
+ Const DEST_FILE As String = "ブック"
34
+
35
+
36
+
37
+ Application.ScreenUpdating = False
38
+
39
+
40
+
41
+ '指定したフォルダ内にあるブックのファイル名を取得
42
+
43
+ sFile = Dir(SOURCE_DIR & "*.xls")
44
+
45
+
46
+
47
+ 'フォルダ内にブックがなければ終了
48
+
49
+ If sFile = "" Then Exit Sub
50
+
51
+
52
+
53
+ '集約用ブックを作成
54
+
55
+ Set dWB = Workbooks.Add
56
+
57
+
58
+
59
+ '集約用ブック作成時のシート数を
60
+
61
+ dSheetCount = dWB.Worksheets.Count
62
+
63
+
64
+
65
+ Do
66
+
67
+ 'コピー元のブックを開く
68
+
69
+ Set sWB = Workbooks.Open(Filename:=SOURCE_DIR & sFile)
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+ 'コピー元の「a,a(2)←あれば」シートを集約用ブックにコピー
78
+
79
+ sWB.Worksheets(Array("a", "a(2)")).Copy After:=dWB.Worksheets(dSheetCount)
80
+
81
+
82
+
83
+
84
+
85
+
86
+
87
+ 'シート名をフォルダ名、a(2)がある場合はフォルダ名.2
88
+
89
+ ActiveSheet.Name = sFile
90
+
91
+ 'コピー元ファイルを閉じる
92
+
93
+ sWB.Close
94
+
95
+
96
+
97
+ '次のブックのファイル名を取得
98
+
99
+ sFile = Dir()
100
+
101
+ Loop While sFile <> ""
102
+
103
+
104
+
105
+ '集約用ブック作成時にあったシートを削除
106
+
107
+ Application.DisplayAlerts = False
108
+
109
+ For i = dSheetCount To 1 Step -1
110
+
111
+ dWB.Worksheets(i).Delete
112
+
113
+ Next i
114
+
115
+ Application.DisplayAlerts = True
116
+
117
+
118
+
119
+ '集約用ブックを保存して閉じる
120
+
121
+ dWB.SaveAs Filename:=DEST_FILE
122
+
123
+ dWB.Close
124
+
125
+
126
+
127
+ Application.ScreenUpdating = False
128
+
129
+ End Sub
130
+
131
+ ### 試したこと
132
+
133
+ ここに問題に対して試したことを記載してください。
134
+
135
+ ふくすう
136
+
137
+ ### 補足情報(FW/ツールのバージョンなど)
138
+
3
- ここにより詳細な情報を記載してください。aaaaaaa
139
+ ここにより詳細な情報を記載してください。

1

誤字

2021/06/08 08:30

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- VBA 複数のブックから複数のシートをまとめたい
1
+ aaaaaaaaaa
test CHANGED
@@ -1,163 +1,3 @@
1
- ### 前提・実現したいこと
1
+ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2
2
 
3
-
4
-
5
- VBAで複数のブックから複数のシートを一つのブックにまとめたい。
6
-
7
-
8
-
9
- ### 発生している問題・エラーメッセージ
10
-
11
-
12
-
13
- ブックによってとりだしたいシートが1つの時と2つの時があるのですが2つめがあった場合は2つめもまとめてなかった場合はスルーしたいのですがスルーができません。
14
-
15
- また、シート名をブック名にしたいのですが2つめがあった場合は[ブック名.2]としたいのですがその指定もできません。
16
-
17
-
18
-
19
- エラーメッセージ
20
-
21
-
22
-
23
- ### 該当のソースコード
24
-
25
-
26
-
27
- ```ここに言語名を入力
28
-
29
- VBA
30
-
31
-
32
-
33
- ソースコード
34
-
35
- Sub Sample()
36
-
37
- Dim sFile As String
38
-
39
- Dim sWB As Workbook, dWB As Workbook
40
-
41
- Dim dSheetCount As Long
42
-
43
- Dim i As Long
44
-
45
- Const SOURCE_DIR As String = "フォルダ"
46
-
47
- Const DEST_FILE As String = "ブック"
48
-
49
-
50
-
51
- Application.ScreenUpdating = False
52
-
53
-
54
-
55
- '指定したフォルダ内にあるブックのファイル名を取得
56
-
57
- sFile = Dir(SOURCE_DIR & "*.xls")
58
-
59
-
60
-
61
- 'フォルダ内にブックがなければ終了
62
-
63
- If sFile = "" Then Exit Sub
64
-
65
-
66
-
67
- '集約用ブックを作成
68
-
69
- Set dWB = Workbooks.Add
70
-
71
-
72
-
73
- '集約用ブック作成時のシート数を
74
-
75
- dSheetCount = dWB.Worksheets.Count
76
-
77
-
78
-
79
- Do
80
-
81
- 'コピー元のブックを開く
82
-
83
- Set sWB = Workbooks.Open(Filename:=SOURCE_DIR & sFile)
84
-
85
-
86
-
87
-
88
-
89
-
90
-
91
- 'コピー元の「a,a(2)←あれば」シートを集約用ブックにコピー
92
-
93
- sWB.Worksheets(Array("a", "a(2)")).Copy After:=dWB.Worksheets(dSheetCount)
94
-
95
-
96
-
97
-
98
-
99
-
100
-
101
- 'シート名をフォルダ名、a(2)がある場合はフォルダ名.2
102
-
103
- ActiveSheet.Name = sFile
104
-
105
- 'コピー元ファイルを閉じる
106
-
107
- sWB.Close
108
-
109
-
110
-
111
- '次のブックのファイル名を取得
112
-
113
- sFile = Dir()
114
-
115
- Loop While sFile <> ""
116
-
117
-
118
-
119
- '集約用ブック作成時にあったシートを削除
120
-
121
- Application.DisplayAlerts = False
122
-
123
- For i = dSheetCount To 1 Step -1
124
-
125
- dWB.Worksheets(i).Delete
126
-
127
- Next i
128
-
129
- Application.DisplayAlerts = True
130
-
131
-
132
-
133
- '集約用ブックを保存して閉じる
134
-
135
- dWB.SaveAs Filename:=DEST_FILE
136
-
137
- dWB.Close
138
-
139
-
140
-
141
- Application.ScreenUpdating = False
142
-
143
- End Sub
144
-
145
-
146
-
147
-
148
-
149
- ### 試したこと
150
-
151
-
152
-
153
- ここに問題に対して試したことを記載してください。
154
-
155
- ふくすう
156
-
157
-
158
-
159
- ### 補足情報(FW/ツールのバージョンなど)
160
-
161
-
162
-
163
- ここにより詳細な情報を記載してください。
3
+ ここにより詳細な情報を記載してください。aaaaaaa