質問編集履歴
9
画像差し替え
title
CHANGED
File without changes
|
body
CHANGED
@@ -177,4 +177,4 @@
|
|
177
177
|
|
178
178
|
End If
|
179
179
|
```
|
180
|
-

|
8
検証③ 追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -156,4 +156,25 @@
|
|
156
156
|
```
|
157
157
|

|
158
158
|
|
159
|
-
この状態で実行すると、以下の画像のように抽出される。
|
159
|
+
この状態で実行すると、以下の画像のように抽出される。
|
160
|
+
|
161
|
+
検証③ 書式を文字列で設定しても「日付」で抽出されてしまう
|
162
|
+
```
|
163
|
+
'CStr 関数は、指定した値を文字列型 (String) に変換する
|
164
|
+
S2.Cells(R, "A").Value = CStr(S2.Cells(R, "A").Value)
|
165
|
+
|
166
|
+
'「値一致」シートの値を、「値の元」シートのA列と比較して一致していたら
|
167
|
+
If S2.Cells(R, "F").Text = ws.Cells(iRowI, "A").Text Then
|
168
|
+
'S2.Cells(R, "A").Value = ws.Cells(Rows.Count, "A")
|
169
|
+
|
170
|
+
'その行の値を転記する
|
171
|
+
S2.Cells(R, "A").Value = ws.Cells(iRowI, "A").Value
|
172
|
+
|
173
|
+
|
174
|
+
' S2.Cells(R, "A").Value = Format("2019/01/01", "yyyy")
|
175
|
+
' S2.Cells(2, 1).Value = Format("2019/01/01", "yyyy") '検証①
|
176
|
+
' Range("A2:A100").Value = Format("2019/01/01", "yyyy") '検証②
|
177
|
+
|
178
|
+
End If
|
179
|
+
```
|
180
|
+

|
7
文言の修正・追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -128,6 +128,9 @@
|
|
128
128
|
```
|
129
129
|
(コメント多く読みにくくてすみません)
|
130
130
|
この状態で実行すると、以下の画像のように抽出される。
|
131
|
+
参照先の設定を誤っているのか、A1のセルだけ表示がおかしいです。
|
132
|
+
元に戻しても、このA2の表示が修正されない。
|
133
|
+
引き続きこちらも修正・検証中。
|
131
134
|
|
132
135
|

|
133
136
|
|
6
検証内容を追記
title
CHANGED
File without changes
|
body
CHANGED
@@ -103,4 +103,54 @@
|
|
103
103
|
|
104
104
|
End Sub
|
105
105
|
|
106
|
-
```
|
106
|
+
```
|
107
|
+
|
108
|
+
2019/03/14 上手くいかないので引き続き検証中(備忘録も兼ねてソースを残します)
|
109
|
+
|
110
|
+
検証①
|
111
|
+
```
|
112
|
+
|
113
|
+
'「値一致」シートの値を、「値の元」シートのA列と比較して一致していたら
|
114
|
+
If S2.Cells(R, "F").Text = ws.Cells(iRowI, "A").Text Then
|
115
|
+
'S2.Cells(R, "A").Value = ws.Cells(Rows.Count, "A")
|
116
|
+
|
117
|
+
'その行の値を転記する
|
118
|
+
S2.Cells(R, "A").Value = ws.Cells(iRowI, "A").Value
|
119
|
+
|
120
|
+
'CStr 関数は、指定した値を文字列型 (String) に変換する
|
121
|
+
S2.Cells(R, "A").Value = CStr(S2.Cells(R, "A").Value)
|
122
|
+
|
123
|
+
' S2.Cells(R, "A").Value = Format("2019/01/01", "yyyy")
|
124
|
+
S2.Cells(2, 1).Value = Format("2019/01/01", "yyyy") '検証①
|
125
|
+
' Range("A2:A30").Value = Format("2019/01/01", "yyyy") '検証②
|
126
|
+
|
127
|
+
End If
|
128
|
+
```
|
129
|
+
(コメント多く読みにくくてすみません)
|
130
|
+
この状態で実行すると、以下の画像のように抽出される。
|
131
|
+
|
132
|
+

|
133
|
+
|
134
|
+
検証②
|
135
|
+
```
|
136
|
+
|
137
|
+
'「値一致」シートの値を、「値の元」シートのA列と比較して一致していたら
|
138
|
+
If S2.Cells(R, "F").Text = ws.Cells(iRowI, "A").Text Then
|
139
|
+
'S2.Cells(R, "A").Value = ws.Cells(Rows.Count, "A")
|
140
|
+
|
141
|
+
'その行の値を転記する
|
142
|
+
S2.Cells(R, "A").Value = ws.Cells(iRowI, "A").Value
|
143
|
+
|
144
|
+
'CStr 関数は、指定した値を文字列型 (String) に変換する
|
145
|
+
S2.Cells(R, "A").Value = CStr(S2.Cells(R, "A").Value)
|
146
|
+
|
147
|
+
' S2.Cells(R, "A").Value = Format("2019/01/01", "yyyy")
|
148
|
+
' S2.Cells(2, 1).Value = Format("2019/01/01", "yyyy") '検証①
|
149
|
+
Range("A2:A30").Value = Format("2019/01/01", "yyyy") '検証②
|
150
|
+
|
151
|
+
End If
|
152
|
+
|
153
|
+
```
|
154
|
+

|
155
|
+
|
156
|
+
この状態で実行すると、以下の画像のように抽出される。
|
5
文言修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
わかりません。。。
|
55
55
|
|
56
56
|
|
57
|
-
修正したソース(まだ未完成ですが、途中経過です)
|
57
|
+
2019/03/13 修正したソースを追記(まだ未完成ですが、途中経過です)
|
58
58
|
```
|
59
59
|
Sub 編集中()
|
60
60
|
Dim S2 As Worksheet
|
4
編集内容反映
title
CHANGED
File without changes
|
body
CHANGED
@@ -51,4 +51,56 @@
|
|
51
51
|
何一つ値をとってこれません。
|
52
52
|
|
53
53
|
値を抽出できないので、やりたいこと②のロジックも
|
54
|
-
わかりません。。。
|
54
|
+
わかりません。。。
|
55
|
+
|
56
|
+
|
57
|
+
修正したソース(まだ未完成ですが、途中経過です)
|
58
|
+
```
|
59
|
+
Sub 編集中()
|
60
|
+
Dim S2 As Worksheet
|
61
|
+
Dim ws As Worksheet
|
62
|
+
Dim R As Long
|
63
|
+
|
64
|
+
'Selection.Value = Selection.Value '(この式は値に変換するという意味らしい)
|
65
|
+
|
66
|
+
Set S2 = Worksheets("値一致")
|
67
|
+
Set ws = Worksheets("値の元")
|
68
|
+
|
69
|
+
Dim iRowI As Integer '"値の元"(読み取り)行
|
70
|
+
Dim iLastRow As Integer
|
71
|
+
|
72
|
+
'A列の最終データ行を取得する(年間カレンダーの最終行)
|
73
|
+
iLastRow = ws.Range("A2").SpecialCells(xlLastCell).Row
|
74
|
+
'表示形式を年だけで表示させる
|
75
|
+
|
76
|
+
'Calendar加工"の2行目~最終データ行までループ処理させる
|
77
|
+
For iRowI = 2 To iLastRow
|
78
|
+
'"Weeklyシート加工"の"F列"の最後の行になるまで実行させる
|
79
|
+
For R = 2 To S2.Cells(Rows.Count, "F").End(xlUp).Row
|
80
|
+
|
81
|
+
'If S2.Cells(R, "C").Value = ws.Cells(Rows.Count, "A") Then
|
82
|
+
|
83
|
+
'「値一致」シートのC列の値を、「値の元」シートのA列と比較して、一致しているか調べてみる
|
84
|
+
If S2.Cells(R, "F").Text = ws.Cells(iRowI, "A").Text Then
|
85
|
+
'S2.Cells(R, "A").Value = ws.Cells(Rows.Count, "A")
|
86
|
+
|
87
|
+
'「値一致」シートと「値の元」シートで一致していたら、その行の値を転記する
|
88
|
+
S2.Cells(R, "A").Value = ws.Cells(iRowI, "A").Value
|
89
|
+
End If
|
90
|
+
If S2.Cells(R, "A").Value = ws.Cells(iRowI, "A").Value Then
|
91
|
+
' S2.Cells(R, "A").Value = CStr(S2.Cells(R, "A").Value) CStr 関数は、指定した値を文字列型 (String) に変換する
|
92
|
+
' S2.Cells(R, "A").Value = ws.Cells(iRowI, "A").Value
|
93
|
+
' S2.Cells(R, "A").Value = Format("2019/01/05", "yyyy")
|
94
|
+
' S2.Cells(R, "A").Value = Format(ws.Cells(S2.Cells(R, "A").Value, "yyyy"))
|
95
|
+
End If
|
96
|
+
'"WK"列の値を表示させる
|
97
|
+
If S2.Cells(R, "F").Text = ws.Cells(iRowI, "A").Text Then
|
98
|
+
S2.Cells(R, "B").Value = ws.Cells(iRowI, "C").Value
|
99
|
+
End If
|
100
|
+
|
101
|
+
Next R
|
102
|
+
Next
|
103
|
+
|
104
|
+
End Sub
|
105
|
+
|
106
|
+
```
|
3
説明文修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
下記の画像のように仕上げるのを目標として
|
25
25
|
色々試行錯誤しているところです。
|
26
26
|
|
27
|
-
|
27
|
+
[完成させたいイメージ図]
|
28
28
|
|
29
29
|
```
|
30
30
|
Dim S2 As Worksheet
|
2
画像修正、文言修正など
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
"値一致シート"のC列の値をA列に転記する。
|
7
7
|
この際転記する値は年(2019など)に変換して表示させたい。
|
8
8
|
|
9
|
-
**"値一致シート"**
|
10
10
|
**"値の元"シート**
|
11
11
|
"値一致シート"のC列には、"19.01.05"などの値があります。これは"2019/01/05"という
|
12
12
|
年月日のことを指しています。
|
@@ -19,8 +19,13 @@
|
|
19
19
|
### やりたいこと②
|
20
20
|
"値一致シート"のC列の値が"値の元"シートのA列と一致していたら、
|
21
21
|
"値の元"シートのC列の"WK表示"の値を、"値一致シート"のB列に転記させたいです。
|
22
|
-
例えば、"19.01.05"なら"WK 01"、"2019/1/22"なら"WK 04"
|
22
|
+
例えば、"19.01.05"なら"WK 01"、"2019/1/22"なら"WK 04"。
|
23
23
|
|
24
|
+
下記の画像のように仕上げるのを目標として
|
25
|
+
色々試行錯誤しているところです。
|
26
|
+
|
27
|
+
![イメージ説明]
|
28
|
+
|
24
29
|
```
|
25
30
|
Dim S2 As Worksheet
|
26
31
|
Dim ws As Worksheet
|
1
文法の編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -41,8 +41,8 @@
|
|
41
41
|
やはりうまく値の検索も抽出も転記もできなかったので、
|
42
42
|
まずセルとセルの内容が一致しているか⇒一致しているなら、その値を
|
43
43
|
セルに転記させる・・・
|
44
|
-
という方法をとった
|
44
|
+
という方法をとってみました。
|
45
|
-
上記のソースコードだとエラーは出ないのですが、
|
45
|
+
しかし、上記のソースコードだとエラーは出ないのですが、
|
46
46
|
何一つ値をとってこれません。
|
47
47
|
|
48
48
|
値を抽出できないので、やりたいこと②のロジックも
|