回答編集履歴
3
内容追記
test
CHANGED
@@ -54,4 +54,30 @@
|
|
54
54
|
|
55
55
|
|
56
56
|
|
57
|
+
> 実行時エラー'1004':
|
58
|
+
|
59
|
+
シートの名前をほかのシート、Visual Basicで参照されるオブジェクトライブラリまたはワークシートと同じ名前に変更することはできません。
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
上記のエラーは、同じシート名のシートを二枚作ろうとした場合に発生します。
|
64
|
+
|
65
|
+
つまり、このマクロを2回実行すると、`Sheets("転記用リスト").Cells(i, 1).Value`で参照する名前のシートが1回目に作成され、二回目実行時にはすでにその名前のシートがあるため、エラーとなります。
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
まずは、マクロで作る予定のシート名のシートが全くない状態に手動で戻してやるのが最も簡単かと思います。
|
70
|
+
|
71
|
+
つぎに、"転記用マクロ"シートのシート名が列挙しているセルに、同じ名前が2個存在していないかチェックしてください。
|
72
|
+
|
73
|
+
ある場合は一意になるよう名前を調整する。無い場合は、2回マクロを実行したことがエラーの原因となります。
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
マクロの方針ですが、「同じシート名が存在したら、古いシートを削除して、新たにコピーする」くらいの流れにするのが良いかと思います。
|
78
|
+
|
79
|
+
「同じ名前のシートの有無をチェックする」方法は、[このへんのページ](http://officetanaka.net/excel/vba/tips/tips10.htm)が参考になるかと思います。
|
80
|
+
|
81
|
+
|
82
|
+
|
57
|
-
|
83
|
+
出張行ってらっしゃい。
|
2
内容訂正
test
CHANGED
@@ -14,9 +14,9 @@
|
|
14
14
|
|
15
15
|
|
16
16
|
|
17
|
-
警告が出ている箇所は、上記になるかと思います。Sheetsの名前を明記せず、Sheets.Countで単に末尾に追加するだけにしていることが原因です。
|
17
|
+
~~警告が出ている箇所は、上記になるかと思います。Sheetsの名前を明記せず、Sheets.Countで単に末尾に追加するだけにしていることが原因です。~~
|
18
18
|
|
19
|
-
その結果、"ひな形"というシートが二つでき、Excel側が自動で"ひな形 (2)"と重複を避けるべく連番を追加しています。
|
19
|
+
~~その結果、"ひな形"というシートが二つでき、Excel側が自動で"ひな形 (2)"と重複を避けるべく連番を追加しています。~~
|
20
20
|
|
21
21
|
|
22
22
|
|
@@ -26,4 +26,32 @@
|
|
26
26
|
|
27
27
|
```
|
28
28
|
|
29
|
-
と名前を指定してあげるとエラーを回避できると思われます。
|
29
|
+
~~と名前を指定してあげるとエラーを回避できると思われます。~~
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
---
|
34
|
+
|
35
|
+
追記かつ訂正
|
36
|
+
|
37
|
+
|
38
|
+
|
39
|
+
> Sheets("ひな形").Copy After:=Sheets(Sheets.Count)
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
私も誤解しておりました!
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
[https://kosapi.com/post-2983/](https://kosapi.com/post-2983/) によりますと、引数Afterは、既存シートの「後ろに」シートをコピーする、という意味だそうです。
|
48
|
+
|
49
|
+
ですので、既存のシートを指定しなければいけない。よって引数に`Sheets(Sheets.Count)`を指定することは間違いではなかったです。大変失礼しました。
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
では、何がいけないか。
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
続報をお待ちください。。。
|
1
名前の付け方修正
test
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
```VBA
|
24
24
|
|
25
|
-
Sheets("ひな形").Copy After:=Sheets("
|
25
|
+
Sheets("ひな形").Copy After:=Sheets(Sheets("転記用リスト").Cells(i, 1).Value)
|
26
26
|
|
27
27
|
```
|
28
28
|
|