回答編集履歴
4
修正
answer
CHANGED
@@ -35,27 +35,29 @@
|
|
35
35
|
|
36
36
|
Sub test()
|
37
37
|
Dim wb As Workbook
|
38
|
-
|
38
|
+
|
39
39
|
Set wb = Workbooks(Workbooks.Count) '最後に開いたブックの取得
|
40
40
|
If MsgBox(wb.Name & "を操作します。", vbYesNo) = vbNo Then Exit Sub
|
41
|
-
|
41
|
+
|
42
42
|
Dim v() As String
|
43
|
+
Dim ws As Worksheet
|
43
|
-
Dim i As Long, j
|
44
|
+
Dim i As Long, j As Long
|
44
|
-
|
45
|
+
|
45
46
|
ReDim v(wb.Worksheets.Count)
|
46
|
-
For i = 1
|
47
|
+
For i = 1 To wb.Worksheets.Count
|
48
|
+
Set ws = Worksheets(i)
|
47
|
-
If
|
49
|
+
If ws.Name <> "DB" Then
|
48
|
-
v(
|
50
|
+
v(j) = ws.Name
|
49
51
|
j = j + 1
|
50
52
|
End If
|
51
53
|
Next
|
52
|
-
|
54
|
+
|
53
|
-
|
55
|
+
If j > 1 Then
|
54
56
|
ReDim Preserve v(j - 1)
|
57
|
+
Debug.Print Join(v, ",")
|
55
|
-
wb.
|
58
|
+
wb.Activate
|
56
59
|
wb.Worksheets(v).Select
|
57
|
-
|
60
|
+
End If
|
58
|
-
|
59
61
|
End Sub
|
60
62
|
```
|
61
63
|
|
3
誤字脱字修正
answer
CHANGED
@@ -40,12 +40,11 @@
|
|
40
40
|
If MsgBox(wb.Name & "を操作します。", vbYesNo) = vbNo Then Exit Sub
|
41
41
|
|
42
42
|
Dim v() As String
|
43
|
-
Dim ws As Worksheet
|
44
43
|
Dim i As Long, j as long
|
45
44
|
|
46
45
|
ReDim v(wb.Worksheets.Count)
|
47
46
|
For i = 1 to wb.Worksheets.Count
|
48
|
-
If
|
47
|
+
If worksheets(i).Name <> "DB" Then
|
49
48
|
v(i - 1) = ws.Name
|
50
49
|
j = j + 1
|
51
50
|
End If
|
2
修正
answer
CHANGED
@@ -39,7 +39,7 @@
|
|
39
39
|
Set wb = Workbooks(Workbooks.Count) '最後に開いたブックの取得
|
40
40
|
If MsgBox(wb.Name & "を操作します。", vbYesNo) = vbNo Then Exit Sub
|
41
41
|
|
42
|
-
Dim v() As
|
42
|
+
Dim v() As String
|
43
43
|
Dim ws As Worksheet
|
44
44
|
Dim i As Long, j as long
|
45
45
|
|
1
追記
answer
CHANGED
@@ -15,4 +15,61 @@
|
|
15
15
|
上手くいきそうなら3つで試す。
|
16
16
|
その後は10個でやってみる。
|
17
17
|
その中で、うまくいくファイルとそうでないファイルの違いを
|
18
|
-
探してみてください。
|
18
|
+
探してみてください。
|
19
|
+
|
20
|
+
---
|
21
|
+
追記
|
22
|
+
|
23
|
+
Stopで止めたとき、
|
24
|
+
ローカルウィンドウの
|
25
|
+
ArrayShNameの中身を確認してください。
|
26
|
+
変数名の左に「⁺」があると思うので、それをクリックで中身が展開できます。
|
27
|
+
|
28
|
+
とりあえず、
|
29
|
+
新規ブックに以下のコードを記入し、
|
30
|
+
その後テストしたいファイルを開いた後、
|
31
|
+
コードを実行してみてください。
|
32
|
+
|
33
|
+
```ExcelVBA
|
34
|
+
Option Explicit
|
35
|
+
|
36
|
+
Sub test()
|
37
|
+
Dim wb As Workbook
|
38
|
+
|
39
|
+
Set wb = Workbooks(Workbooks.Count) '最後に開いたブックの取得
|
40
|
+
If MsgBox(wb.Name & "を操作します。", vbYesNo) = vbNo Then Exit Sub
|
41
|
+
|
42
|
+
Dim v() As Variant
|
43
|
+
Dim ws As Worksheet
|
44
|
+
Dim i As Long, j as long
|
45
|
+
|
46
|
+
ReDim v(wb.Worksheets.Count)
|
47
|
+
For i = 1 to wb.Worksheets.Count
|
48
|
+
If ws.Name <> "DB" Then
|
49
|
+
v(i - 1) = ws.Name
|
50
|
+
j = j + 1
|
51
|
+
End If
|
52
|
+
Next
|
53
|
+
|
54
|
+
if j > 1 then
|
55
|
+
ReDim Preserve v(j - 1)
|
56
|
+
wb.Select
|
57
|
+
wb.Worksheets(v).Select
|
58
|
+
end if
|
59
|
+
|
60
|
+
End Sub
|
61
|
+
```
|
62
|
+
|
63
|
+
動作確認は、
|
64
|
+
ステップインで、一行づつ実行しながら、
|
65
|
+
ローカルウィンドウで変数の中身が意図するものになっているか
|
66
|
+
確認しながら、最終的にはシートを選択するのですから、
|
67
|
+
意図した結果が、画面上に反映されているか確認してください。
|
68
|
+
|
69
|
+
やみくもに、本番コードに追記していっても、
|
70
|
+
時間がかかるばっかりかと思いますよ。
|
71
|
+
まずは、ひとつづテーマを絞って解決していって、
|
72
|
+
自信が出来たら、本番コードに追加していってみては?
|
73
|
+
|
74
|
+
参考>>
|
75
|
+
[プロパティ、メソッドの探り方 マクロ記録とF1のHelpを使う](http://www.ken3.org/vba/excel-help.html)
|