質問編集履歴
7
画像差し替え
test
CHANGED
File without changes
|
test
CHANGED
@@ -112,7 +112,7 @@
|
|
112
112
|
|
113
113
|
### 補足情報(FW/ツールのバージョンなど)
|
114
114
|
|
115
|
-
![イメージ説明](9
|
115
|
+
![イメージ説明](21d7b2b6537d489e5d34508fdc23001f.png)
|
116
116
|
|
117
117
|
左がbook1で右がbook2です。
|
118
118
|
|
6
画像差し替え
test
CHANGED
File without changes
|
test
CHANGED
@@ -112,7 +112,7 @@
|
|
112
112
|
|
113
113
|
### 補足情報(FW/ツールのバージョンなど)
|
114
114
|
|
115
|
-
![イメージ説明](
|
115
|
+
![イメージ説明](95fe59c70f4b18f3173027720ec22439.png)
|
116
116
|
|
117
117
|
左がbook1で右がbook2です。
|
118
118
|
|
5
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -50,49 +50,53 @@
|
|
50
50
|
|
51
51
|
```VBA
|
52
52
|
|
53
|
+
Public Sub ブック間転送()
|
54
|
+
|
53
|
-
|
55
|
+
'ループ用の変数
|
54
56
|
|
55
57
|
Dim m As Long
|
56
58
|
|
57
59
|
Dim n As Long
|
58
60
|
|
59
|
-
|
61
|
+
Dim row1 As Long 'Book1 O列へ書き込む行番号
|
60
62
|
|
61
|
-
Dim s1 As Worksheet
|
63
|
+
Dim s1 As Worksheet
|
62
64
|
|
63
|
-
Dim s2 As Worksheet
|
65
|
+
Dim s2 As Worksheet
|
64
66
|
|
65
|
-
|
67
|
+
|
66
68
|
|
67
69
|
Set s1 = Workbooks("book1.xlsx").Worksheets(1)
|
68
70
|
|
69
71
|
Set s2 = Workbooks("book2.xlsx").Worksheets(1)
|
70
72
|
|
71
|
-
|
73
|
+
row1 = 2
|
72
74
|
|
73
75
|
'それぞれのシートの比較行を最終行までループ
|
74
76
|
|
75
77
|
For m = 2 To s1.Cells(Rows.Count, 4).End(xlUp).Row
|
76
78
|
|
77
|
-
For n = 2 To s2.Cells(Rows.Count, 4).End(xlUp).Row
|
79
|
+
For n = 2 To s2.Cells(Rows.Count, 4).End(xlUp).Row
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
'book1とbook2のD列の比較 これだと列ごとに比較してしまうので
|
82
|
-
|
83
|
-
'book1の(m,4)をbook2のD列の全てのデータと比較して、転記が終わってから次の処理に移りたいです。
|
84
|
-
|
85
|
-
If s1.Cells(m, 4).Value = s2.Cells(n, 4).Value Then
|
86
|
-
|
87
|
-
s2.Cells(n, 25).Value = s1.Cells(m, 15).Value
|
88
80
|
|
89
81
|
|
90
82
|
|
83
|
+
'book1とbook2のD列の比較 これだと列ごとに比較してしまうので
|
84
|
+
|
85
|
+
'book1の(m,4)をbook2のD列の全てのデータと比較して、転記が終わってから次の処理に移りたいです。
|
86
|
+
|
87
|
+
If s1.Cells(m, 4).Value = s2.Cells(n, 4).Value Then
|
88
|
+
|
89
|
+
s1.Cells(row1, "O").Value = s2.Cells(n, "Y").Value
|
90
|
+
|
91
|
+
row1 = row1 + 1
|
92
|
+
|
91
|
-
End If
|
93
|
+
End If
|
94
|
+
|
95
|
+
Next
|
92
96
|
|
93
97
|
Next
|
94
98
|
|
95
|
-
|
99
|
+
End Sub
|
96
100
|
|
97
101
|
```
|
98
102
|
|
4
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -114,7 +114,7 @@
|
|
114
114
|
|
115
115
|
book1のD列のd2をbook2のD列から検索して、Y列の1001という値をbook1のO列に転記したいです。
|
116
116
|
|
117
|
-
|
117
|
+
d1なら対応するO列に1000が入ります。これを1行ずつ繰り返すような処理です。
|
118
118
|
|
119
119
|
|
120
120
|
|
3
補足情報に画像付きで説明を載せました
test
CHANGED
File without changes
|
test
CHANGED
@@ -108,6 +108,14 @@
|
|
108
108
|
|
109
109
|
### 補足情報(FW/ツールのバージョンなど)
|
110
110
|
|
111
|
+
![イメージ説明](6fc9a374e4221f2f29dca204cc325d1e.png)
|
112
|
+
|
113
|
+
左がbook1で右がbook2です。
|
114
|
+
|
115
|
+
book1のD列のd2をbook2のD列から検索して、Y列の1001という値をbook1のO列に転記したいです。
|
116
|
+
|
117
|
+
それを1つずつ繰り返すような処理です。
|
118
|
+
|
111
119
|
|
112
120
|
|
113
121
|
どうぞよろしくお願いいたします。
|
2
コード追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -50,7 +50,49 @@
|
|
50
50
|
|
51
51
|
```VBA
|
52
52
|
|
53
|
+
'ループ用の変数
|
53
54
|
|
55
|
+
Dim m As Long
|
56
|
+
|
57
|
+
Dim n As Long
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
Dim s1 As Worksheet
|
62
|
+
|
63
|
+
Dim s2 As Worksheet
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
Set s1 = Workbooks("book1.xlsx").Worksheets(1)
|
68
|
+
|
69
|
+
Set s2 = Workbooks("book2.xlsx").Worksheets(1)
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
'それぞれのシートの比較行を最終行までループ
|
74
|
+
|
75
|
+
For m = 2 To s1.Cells(Rows.Count, 4).End(xlUp).Row
|
76
|
+
|
77
|
+
For n = 2 To s2.Cells(Rows.Count, 4).End(xlUp).Row
|
78
|
+
|
79
|
+
|
80
|
+
|
81
|
+
'book1とbook2のD列の比較 これだと列ごとに比較してしまうので
|
82
|
+
|
83
|
+
'book1の(m,4)をbook2のD列の全てのデータと比較して、転記が終わってから次の処理に移りたいです。
|
84
|
+
|
85
|
+
If s1.Cells(m, 4).Value = s2.Cells(n, 4).Value Then
|
86
|
+
|
87
|
+
s2.Cells(n, 25).Value = s1.Cells(m, 15).Value
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
End If
|
92
|
+
|
93
|
+
Next
|
94
|
+
|
95
|
+
Next
|
54
96
|
|
55
97
|
```
|
56
98
|
|
1
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
VBAについてです。
|
2
2
|
|
3
|
+
### 前提・実現したいこと
|
3
4
|
|
5
|
+
|
6
|
+
|
7
|
+
VBAで2つのブックを比較して、データの転記がしたいです。
|
4
8
|
|
5
9
|
Book1(sheet1) 転記するシート
|
6
10
|
|
@@ -16,7 +20,7 @@
|
|
16
20
|
|
17
21
|
book1のD列の2行目のデータをbook2のD列から検索して、合致しているデータがあれば、
|
18
22
|
|
19
|
-
book2のY列のデータをbook1の2行目のO列に転記
|
23
|
+
book2の合致した行にあるY列のデータをbook1の2行目のO列に転記する。
|
20
24
|
|
21
25
|
この動作をbook1のD列の3行目、4行目...最終行まで繰り返し処理をしたいです。
|
22
26
|
|
@@ -32,4 +36,36 @@
|
|
32
36
|
|
33
37
|
|
34
38
|
|
39
|
+
|
40
|
+
|
41
|
+
### 発生している問題・エラーメッセージ
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
book1のD2のデータをbook2のD列から検索して、検索が終わったら次のbook1のD3のデータを検索する、という動きがifやforなどを使えばできそうなのはなんとなくわかるのですが、具体的にどうすればいいのかわかりません。涙
|
46
|
+
|
47
|
+
### 該当のソースコード
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
```VBA
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
```
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
### 試したこと
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
### 補足情報(FW/ツールのバージョンなど)
|
68
|
+
|
69
|
+
|
70
|
+
|
35
71
|
どうぞよろしくお願いいたします。
|