質問編集履歴

2

コードを一部修正しました

2022/01/31 11:47

投稿

kazuki51
kazuki51

スコア23

title CHANGED
File without changes
body CHANGED
@@ -134,9 +134,9 @@
134
134
  For i = 2 To 6
135
135
  Dim personItem As C_Data: Set personItem = New C_Data
136
136
  With personItem
137
- .name = Sheet1.Cells(i, 1)
137
+ .name = TargetSheet.Cells(i, 1)
138
- .age = Sheet1.Cells(i, 2)
138
+ .age = TargetSheet.Cells(i, 2)
139
- .location = Sheet1.Cells(i, 3)
139
+ .location = TargetSheet.Cells(i, 3)
140
140
  End With
141
141
  GetPersonCollectionFrom.Add personItem
142
142
  Next i

1

コードの修正

2022/01/30 15:52

投稿

kazuki51
kazuki51

スコア23

title CHANGED
File without changes
body CHANGED
@@ -92,3 +92,63 @@
92
92
  Next i
93
93
  End Sub
94
94
  ```
95
+
96
+
97
+ ### ※以下修正したコード
98
+ ■標準モジュール
99
+ - M_Mainモジュール
100
+ ```M_Main
101
+ Option Explicit
102
+
103
+ Sub Tenkisyori()
104
+ Call TenkiData
105
+ End Sub
106
+ ```
107
+ - M_Originalモジュール
108
+ ```M_Original
109
+ Option Explicit
110
+
111
+ Private items As Collection
112
+
113
+ Public Sub TenkiData()
114
+ '## Sheet2へデータの転記を実行する
115
+ Dim i As Long: i = 1
116
+ Dim d As C_Data
117
+
118
+ For Each d In GetPersonCollectionFrom(Sheet1)
119
+ With Sheet2
120
+ .Cells(i, 1) = d.name
121
+ .Cells(i, 2) = d.age
122
+ .Cells(i, 3) = d.location
123
+ i = i + 1
124
+ End With
125
+ Next d
126
+
127
+ End Sub
128
+
129
+ Function GetPersonCollectionFrom(ByRef TargetSheet As Worksheet) As Collection
130
+ '## Sheet1のデータをCollectionへ順次格納する
131
+ Set GetPersonCollectionFrom = New Collection
132
+ Dim i As Long
133
+
134
+ For i = 2 To 6
135
+ Dim personItem As C_Data: Set personItem = New C_Data
136
+ With personItem
137
+ .name = Sheet1.Cells(i, 1)
138
+ .age = Sheet1.Cells(i, 2)
139
+ .location = Sheet1.Cells(i, 3)
140
+ End With
141
+ GetPersonCollectionFrom.Add personItem
142
+ Next i
143
+
144
+ End Function
145
+ ```
146
+ ■クラスモジュール
147
+ - C_Dataクラス
148
+ ```C_Data
149
+ Option Explicit
150
+
151
+ Public name As String
152
+ Public age As Integer
153
+ Public location As String
154
+ ```