回答編集履歴

1

追記

2020/08/22 00:32

投稿

mattuwan
mattuwan

スコア2163

test CHANGED
@@ -5,3 +5,133 @@
5
5
  両方ならシートそのものをコピーするか、
6
6
 
7
7
  個々に行や列を設定するしかないかと思います。
8
+
9
+
10
+
11
+ ---------
12
+
13
+ 追記
14
+
15
+
16
+
17
+ セル全体をコピーしてもいいんですね。
18
+
19
+ 目から鱗です。
20
+
21
+
22
+
23
+
24
+
25
+ 手動では操作したいものは、選択してエクセルに伝えますが、
26
+
27
+ VBAでは、操作したいものを文章で指示しますので、
28
+
29
+ 選択したりアクティブにしたりの命令の記述は、不要です。
30
+
31
+ というか無駄な操作です。
32
+
33
+
34
+
35
+ ```ExcelVBA
36
+
37
+ Sub test1()
38
+
39
+ Dim wshTemplate As Worksheet '雛形シート
40
+
41
+ Dim wshNew As Worksheet '新しく作るシート
42
+
43
+ Dim strName As String 'シート名
44
+
45
+
46
+
47
+ '準備(前提条件の整理)
48
+
49
+ strName = Worksheets("顧客管理").Range("D1").Value
50
+
51
+ With Worksheets
52
+
53
+ Set wshTemplate = .Item("基礎")
54
+
55
+ Set wshNew = .Add(after:=.Item(.Count))
56
+
57
+ End With
58
+
59
+
60
+
61
+ '転記&追記
62
+
63
+ With wshNew
64
+
65
+ wshTemplate.Cells.Copy .Cells
66
+
67
+ .Name = strName
68
+
69
+ With .UsedRange
70
+
71
+ .Cells(.Rows.Count + 1, 1).Value = strName
72
+
73
+ End With
74
+
75
+ End With
76
+
77
+ End Sub
78
+
79
+ ```
80
+
81
+
82
+
83
+ ただ、
84
+
85
+ 1)新しいシートを作成
86
+
87
+ 2)雛形シートのセルをコピペ
88
+
89
+ だと作業が2工程になりますが、
90
+
91
+
92
+
93
+ 1)雛形シートをコピー
94
+
95
+
96
+
97
+ の1工程でも同じ結果になりませんか?
98
+
99
+ シート名を変えるのは同じですし。
100
+
101
+
102
+
103
+ ```ExcelVBA
104
+
105
+ Sub test2()
106
+
107
+ Dim s As String
108
+
109
+ Dim ix As Long
110
+
111
+
112
+
113
+ With Worksheets
114
+
115
+ s = .Item("顧客管理").Range("D1").Value
116
+
117
+ ix = .Count
118
+
119
+ .Item("基礎").Copy after:=.Item(ix) '←シートを丸ごとコピー
120
+
121
+ With .Item(ix + 1)
122
+
123
+ .Name = s
124
+
125
+ .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Value = s
126
+
127
+ End With
128
+
129
+ End With
130
+
131
+ End Sub
132
+
133
+ ```
134
+
135
+
136
+
137
+ 解説が必要な部分があれば、聞いてください。