質問編集履歴

4

画像追加

2019/03/06 07:18

投稿

carrin
carrin

スコア15

test CHANGED
File without changes
test CHANGED
@@ -212,6 +212,10 @@
212
212
 
213
213
  ```
214
214
 
215
+ Calendarのイメージ
216
+
217
+ ![イメージ説明](c959fd2c19d8e069bb2e66d87bd2b0f3.jpeg)
218
+
215
219
  **【やりたいこと③】のソースコード**
216
220
 
217
221
  ```

3

質問内容の詳細を追記。画像追加。

2019/03/06 07:18

投稿

carrin
carrin

スコア15

test CHANGED
File without changes
test CHANGED
@@ -40,6 +40,50 @@
40
40
 
41
41
 
42
42
 
43
+ ![イメージ説明](58c0c210efbba60a2c05af4e71f69861.jpeg)
44
+
45
+
46
+
47
+ 文章で表しにくかったので、画像を。。。
48
+
49
+ 例えば、品目が「バナナ」で、2行目はA列からG列まで値が入っているので、
50
+
51
+ これは2行目を全てシート②へ転記。
52
+
53
+ 3行目はA列からC列はブランク⇒C列からG列まで値が入っているので、
54
+
55
+ このC列からG列までの値を上記で転記した行の下に追記。
56
+
57
+ 7行目まで、同じ処理をしたい。
58
+
59
+ D列の<小計>がある行は転記不要なので、この"<小計>"の文字列に来たら、
60
+
61
+ 転記せず、次の処理に進みたい。
62
+
63
+
64
+
65
+ 次の処理とは、
66
+
67
+ 品目が「マンゴー」で、
68
+
69
+ 10行目はA列からG列まで値が入っているので、
70
+
71
+ これは10行目を全てシート②へ転記。
72
+
73
+ 11行目から13行目まではA列からC列はブランク⇒C列からG列まで値が入っているので、このC列からG列までの値を上記で転記した行の下に追記。
74
+
75
+ *「バナナ」の時と同じ要領で行いたいです。
76
+
77
+
78
+
79
+ シート②の貼付先シートの完成図は
80
+
81
+ 以下の画像のようになるように処理を行いたいです(可能でしたら)
82
+
83
+ ![イメージ説明](957c131adb03695e2fbefc8a3864e5ec.jpeg)
84
+
85
+
86
+
43
87
  **【やりたいこと②】**
44
88
 
45
89
  シート①にある、該当するセルの値(文字列)を、シート②に値として転記したいが、
@@ -52,7 +96,9 @@
52
96
 
53
97
  恥ずかしながら、この処理は「マクロの記録」で行ったものです。単純にシート①にある必要な値をコピペでシート②に貼り付けした作業です。
54
98
 
55
-
99
+
100
+
101
+
56
102
 
57
103
  **【やりたいこと③】**
58
104
 
@@ -208,7 +254,13 @@
208
254
 
209
255
 
210
256
 
257
+ ```
258
+
259
+ Sub 転記用データ()
260
+
261
+
262
+
211
- ``` ActiveCell.FormulaR1C1 = "=IF(RC[-1]<>"""",""WK"" & RC[-1],"""")"
263
+ ActiveCell.FormulaR1C1 = "=IF(RC[-1]<>"""",""WK"" & RC[-1],"""")"
212
264
 
213
265
  Range("G3").Select
214
266
 
@@ -228,6 +280,30 @@
228
280
 
229
281
  ```
230
282
 
283
+ 【やりたいこと②と③のイメージ】
284
+
285
+ ![イメージ説明](fbc95c60eb05479a1b306cc1d0210b99.jpeg)
286
+
287
+ 赤枠内の値(文字列として)、別シートに転記したい。
288
+
289
+ *下記の自分のソースコードで実行すると、文字列として抽出したいのに、
290
+
291
+  計算式が入った状態でしか抽出できず、以降の作業でエラーを出さないために、
292
+
293
+  値で取るようにと言われています。なので、自分で考えたのが、次の画像に
294
+
295
+  あるように、隣の列で文字列に変換する処理です。
296
+
297
+  この文字列に変換した値を、さらに隣の列"DB用"に、
298
+
299
+  値が一桁の数字なら頭に0をつけて見た目を揃え、更にその文字列の頭に
300
+
301
+  "WK"を付ける処理を行いたいです。
302
+
303
+
304
+
305
+ ![イメージ説明](c509dc11110e5e857984e452630b0701.jpeg)
306
+
231
307
 
232
308
 
233
309
 

2

タイトル修正、本文修正

2019/03/05 07:47

投稿

carrin
carrin

スコア15

test CHANGED
@@ -1 +1 @@
1
- 【Excel VBA】【初心者】繰り返し処理と文字列の転記について
1
+ 【Excel VBA】繰り返し処理と文字列の転記について
test CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- 【やりたいこと①】
23
+ **【やりたいこと①】**
24
24
 
25
25
  シート①にあるデータを、必要な項目だけを抜粋して、シート②に転記したい。
26
26
 
@@ -40,7 +40,7 @@
40
40
 
41
41
 
42
42
 
43
- 【やりたいこと②】
43
+ **【やりたいこと②】**
44
44
 
45
45
  シート①にある、該当するセルの値(文字列)を、シート②に値として転記したいが、
46
46
 
@@ -54,7 +54,7 @@
54
54
 
55
55
 
56
56
 
57
- 【やりたいこと③】
57
+ **【やりたいこと③】**
58
58
 
59
59
  シート①のあるセルに入っている値を、シート②の所定の箇所に転記した際、
60
60
 
@@ -78,12 +78,12 @@
78
78
 
79
79
  ### 該当のソースコード
80
80
 
81
- 【やりたいこと①のソースコード】
81
+ **【やりたいこと①のソースコード】**
82
+
83
+ ```
82
84
 
83
85
  Sub Weeklyシート加工()
84
86
 
85
-
86
-
87
87
  Dim S1 As Worksheet, S2 As Worksheet
88
88
 
89
89
 
@@ -108,6 +108,8 @@
108
108
 
109
109
  End Sub
110
110
 
111
+ ```
112
+
111
113
 
112
114
 
113
115
  ⇒S1.Range(S1.Cells(5, 2), S1.Cells(5, 9)).Copy S2.Range(S2.Cells(2, 3), S2.Cells(2, 10))
@@ -126,7 +128,9 @@
126
128
 
127
129
 
128
130
 
129
- 【やりたいこと②】のソースコード
131
+ **【やりたいこと②】のソースコード**
132
+
133
+ ```
130
134
 
131
135
  Sub WK抽出()
132
136
 
@@ -160,7 +164,11 @@
160
164
 
161
165
 
162
166
 
167
+ ```
168
+
163
- 【やりたいこと③】のソースコード
169
+ **【やりたいこと③】のソースコード**
170
+
171
+ ```
164
172
 
165
173
  Sub 値に変換()
166
174
 
@@ -176,8 +184,6 @@
176
184
 
177
185
 
178
186
 
179
-
180
-
181
187
  Selection.Copy
182
188
 
183
189
  ActiveWindow.SmallScroll Down:=-72
@@ -192,21 +198,17 @@
192
198
 
193
199
  Application.CutCopyMode = False
194
200
 
195
-
196
-
197
-
198
-
199
-
200
-
201
+
202
+
201
- End Sub
203
+ End Sub
204
+
202
-
205
+ ```
206
+
203
- Sub 転記用データ() ⇒頭に"WK"の文字列をつけるソースコード
207
+ **Sub 【やりたいこと③ 転記用データ() ⇒頭に"WK"の文字列をつけるソースコード】**
204
-
205
-
206
-
207
-
208
-
208
+
209
+
210
+
209
- ActiveCell.FormulaR1C1 = "=IF(RC[-1]<>"""",""WK"" & RC[-1],"""")"
211
+ ``` ActiveCell.FormulaR1C1 = "=IF(RC[-1]<>"""",""WK"" & RC[-1],"""")"
210
212
 
211
213
  Range("G3").Select
212
214
 
@@ -220,12 +222,18 @@
220
222
 
221
223
  Range("G3:G74").Value = Range("G3:G74").Value
222
224
 
223
-
224
-
225
+
226
+
225
- End Sub
227
+ End Sub
228
+
226
-
229
+ ```
227
-
228
-
229
-
230
-
230
+
231
+
232
+
233
+
234
+
231
- わかりにくい内容ですが、宜しくお願い致します。
235
+ 宜しくお願い致します。
236
+
237
+ teratailに登録したばかりで、質問文がわかりににく、
238
+
239
+ 申し訳ございません。

1

文法の修正および追記

2019/03/05 06:57

投稿

carrin
carrin

スコア15

test CHANGED
File without changes
test CHANGED
@@ -64,19 +64,15 @@
64
64
 
65
65
 
66
66
 
67
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
68
-
69
-
70
-
71
- ### 発生している問題・エラーメッセージ
67
+ 私の書き方が誤っているせいだと思うのですが、
72
-
73
-
74
-
68
+
75
- ```
69
+ 一つのプロシージャ内に、まとめて処理を記述すると、
76
-
70
+
77
- エラーメッセージ
71
+ 必ずどちらかが動かず(もしくはエラーが出ました)、
72
+
78
-
73
+ 処理が進まないので、今はひとまずVBAの基本の基本から手を動かして覚えなくては!
74
+
79
- ```
75
+ と思い、一つの処理に対して、一つのソースコードを書いています。
80
76
 
81
77
 
82
78