回答編集履歴
1
追記
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
|
+
解説が必要な部分があれば、聞いてください。
|