回答編集履歴

2

追加質問

2021/12/10 05:31

投稿

shimeji_XX
shimeji_XX

スコア42

answer CHANGED
@@ -33,4 +33,48 @@
33
33
  と記述します。
34
34
 
35
35
  自分が転記したくないデータも転記してしまうということでしたので
36
- 一度転記の条件を見直してみればいいかもしれません。
36
+ 一度転記の条件を見直してみればいいかもしれません。
37
+
38
+ ---
39
+ #追記。
40
+ この回答方法が正しいのか分かりませんでしたが、一応回答いたします。
41
+ ##### 追加質問
42
+ >>今回はws.2のA-P列を転記するというものでした。
43
+ >>これを,ws.2のA-Bと,R-X列を転記し,A,B,R,S...と詰めて表示する場合,
44
+ >>Rangeの部分に何か加えればいいのでしょうか。
45
+
46
+ ```VBA
47
+ '検索条件に該当する材質をシート「成分(2020年1月1日~)」に転記する
48
+ ws02.Range("A" & mRow & ":P" & mRow).Value = ws01.Range("A" & I & ":P" & I).Value
49
+ ```
50
+ この行の処理を見てください。こちらでデータをws01からws02にコピーしているのは分かりますか?
51
+
52
+ 全体の処理を見ると、変数Iにはws01の入力行(コピーする元の行)が入り、変数mRowにはws02の出力行(コピーする先の行)が入っています。
53
+ 例えば、mRowに "5" 、I には "15" が入っていたとします。
54
+ すると上の行は「ws01の"A15:P15"」を「ws02の"A5:P5"」にコピーする
55
+ ```VBA
56
+ '検索条件に該当する材質をシート「成分(2020年1月1日~)」に転記する
57
+ ws02.Range("A5:P5").Value = ws01.Range("A15:P15").Value
58
+ ```
59
+ という処理になります。
60
+
61
+ 新しく書きたい処理に置き換えた場合
62
+ 「ws01の"A15:B15"」を「ws02の"A5:B5"」にコピーする。
63
+ 「ws01の"R15:X15"」を「ws02の"C5:I5"」にコピーする。
64
+ という二つの処理で書くことができます。
65
+ ```VBA
66
+ '検索条件に該当する材質をシート「成分(2020年1月1日~)」に転記する
67
+ ws02.Range("A5:B5").Value = ws01.Range("A15:B15").Value
68
+ ws02.Range("C5:I5").Value = ws01.Range("R15:X15").Value
69
+ ```
70
+
71
+
72
+ 実際には条件に合わせて変数Iと変数mRowが変更されていくので、
73
+ ```VBA
74
+ '検索条件に該当する材質をシート「成分(2020年1月1日~)」に転記する
75
+ ws02.Range("A" & mRow & ":B" & mRow).Value = ws01.Range("A" & I & ":B" & I).Value
76
+ ws02.Range("C" & mRow & ":I" & mRow).Value = ws01.Range("R" & I & ":X" & I).Value
77
+ ```
78
+ といった形になります。
79
+ ここまで書いてあることが分からなかった場合には、最後のプログラムをコピーしてください。
80
+ 大変かとは思いますが、学習頑張ってください。

1

誤字の修正

2021/12/10 05:31

投稿

shimeji_XX
shimeji_XX

スコア42

answer CHANGED
@@ -28,7 +28,7 @@
28
28
 
29
29
  「FCD450」という文字列から始まるデータについて抜き出したい場合は
30
30
  ```VBA
31
- If ws01.Cells(I, "B") = kensaku & "*" Then
31
+ If ws01.Cells(I, "B") Like kensaku & "*" Then
32
32
  ```
33
33
  と記述します。
34
34