回答編集履歴
4
修正
test
CHANGED
@@ -72,27 +72,31 @@
|
|
72
72
|
|
73
73
|
Dim wb As Workbook
|
74
74
|
|
75
|
-
|
75
|
+
|
76
76
|
|
77
77
|
Set wb = Workbooks(Workbooks.Count) '最後に開いたブックの取得
|
78
78
|
|
79
79
|
If MsgBox(wb.Name & "を操作します。", vbYesNo) = vbNo Then Exit Sub
|
80
80
|
|
81
|
-
|
81
|
+
|
82
82
|
|
83
83
|
Dim v() As String
|
84
84
|
|
85
|
-
Dim
|
85
|
+
Dim ws As Worksheet
|
86
86
|
|
87
|
-
|
87
|
+
Dim i As Long, j As Long
|
88
|
+
|
89
|
+
|
88
90
|
|
89
91
|
ReDim v(wb.Worksheets.Count)
|
90
92
|
|
91
|
-
For i = 1
|
93
|
+
For i = 1 To wb.Worksheets.Count
|
92
94
|
|
93
|
-
|
95
|
+
Set ws = Worksheets(i)
|
94
96
|
|
97
|
+
If ws.Name <> "DB" Then
|
98
|
+
|
95
|
-
v(
|
99
|
+
v(j) = ws.Name
|
96
100
|
|
97
101
|
j = j + 1
|
98
102
|
|
@@ -100,19 +104,19 @@
|
|
100
104
|
|
101
105
|
Next
|
102
106
|
|
103
|
-
|
104
107
|
|
108
|
+
|
105
|
-
|
109
|
+
If j > 1 Then
|
106
110
|
|
107
111
|
ReDim Preserve v(j - 1)
|
108
112
|
|
113
|
+
Debug.Print Join(v, ",")
|
114
|
+
|
109
|
-
wb.
|
115
|
+
wb.Activate
|
110
116
|
|
111
117
|
wb.Worksheets(v).Select
|
112
118
|
|
113
|
-
|
119
|
+
End If
|
114
|
-
|
115
|
-
|
116
120
|
|
117
121
|
End Sub
|
118
122
|
|
3
誤字脱字修正
test
CHANGED
@@ -82,8 +82,6 @@
|
|
82
82
|
|
83
83
|
Dim v() As String
|
84
84
|
|
85
|
-
Dim ws As Worksheet
|
86
|
-
|
87
85
|
Dim i As Long, j as long
|
88
86
|
|
89
87
|
|
@@ -92,7 +90,7 @@
|
|
92
90
|
|
93
91
|
For i = 1 to wb.Worksheets.Count
|
94
92
|
|
95
|
-
If ws.Name <> "DB" Then
|
93
|
+
If worksheets(i).Name <> "DB" Then
|
96
94
|
|
97
95
|
v(i - 1) = ws.Name
|
98
96
|
|
2
修正
test
CHANGED
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
|
82
82
|
|
83
|
-
Dim v() As
|
83
|
+
Dim v() As String
|
84
84
|
|
85
85
|
Dim ws As Worksheet
|
86
86
|
|
1
追記
test
CHANGED
@@ -33,3 +33,117 @@
|
|
33
33
|
その中で、うまくいくファイルとそうでないファイルの違いを
|
34
34
|
|
35
35
|
探してみてください。
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
---
|
40
|
+
|
41
|
+
追記
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
Stopで止めたとき、
|
46
|
+
|
47
|
+
ローカルウィンドウの
|
48
|
+
|
49
|
+
ArrayShNameの中身を確認してください。
|
50
|
+
|
51
|
+
変数名の左に「⁺」があると思うので、それをクリックで中身が展開できます。
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
とりあえず、
|
56
|
+
|
57
|
+
新規ブックに以下のコードを記入し、
|
58
|
+
|
59
|
+
その後テストしたいファイルを開いた後、
|
60
|
+
|
61
|
+
コードを実行してみてください。
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
```ExcelVBA
|
66
|
+
|
67
|
+
Option Explicit
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
Sub test()
|
72
|
+
|
73
|
+
Dim wb As Workbook
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
Set wb = Workbooks(Workbooks.Count) '最後に開いたブックの取得
|
78
|
+
|
79
|
+
If MsgBox(wb.Name & "を操作します。", vbYesNo) = vbNo Then Exit Sub
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
Dim v() As Variant
|
84
|
+
|
85
|
+
Dim ws As Worksheet
|
86
|
+
|
87
|
+
Dim i As Long, j as long
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
ReDim v(wb.Worksheets.Count)
|
92
|
+
|
93
|
+
For i = 1 to wb.Worksheets.Count
|
94
|
+
|
95
|
+
If ws.Name <> "DB" Then
|
96
|
+
|
97
|
+
v(i - 1) = ws.Name
|
98
|
+
|
99
|
+
j = j + 1
|
100
|
+
|
101
|
+
End If
|
102
|
+
|
103
|
+
Next
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
if j > 1 then
|
108
|
+
|
109
|
+
ReDim Preserve v(j - 1)
|
110
|
+
|
111
|
+
wb.Select
|
112
|
+
|
113
|
+
wb.Worksheets(v).Select
|
114
|
+
|
115
|
+
end if
|
116
|
+
|
117
|
+
|
118
|
+
|
119
|
+
End Sub
|
120
|
+
|
121
|
+
```
|
122
|
+
|
123
|
+
|
124
|
+
|
125
|
+
動作確認は、
|
126
|
+
|
127
|
+
ステップインで、一行づつ実行しながら、
|
128
|
+
|
129
|
+
ローカルウィンドウで変数の中身が意図するものになっているか
|
130
|
+
|
131
|
+
確認しながら、最終的にはシートを選択するのですから、
|
132
|
+
|
133
|
+
意図した結果が、画面上に反映されているか確認してください。
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
やみくもに、本番コードに追記していっても、
|
138
|
+
|
139
|
+
時間がかかるばっかりかと思いますよ。
|
140
|
+
|
141
|
+
まずは、ひとつづテーマを絞って解決していって、
|
142
|
+
|
143
|
+
自信が出来たら、本番コードに追加していってみては?
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
参考>>
|
148
|
+
|
149
|
+
[プロパティ、メソッドの探り方 マクロ記録とF1のHelpを使う](http://www.ken3.org/vba/excel-help.html)
|