質問するログイン新規登録

質問編集履歴

9

画像差し替え

2019/03/14 08:38

投稿

carrin
carrin

スコア15

title CHANGED
File without changes
body CHANGED
@@ -177,4 +177,4 @@
177
177
 
178
178
  End If
179
179
  ```
180
- ![イメージ説明](ff2c8811ec9b71450e7bd94988344f3c.jpeg)
180
+ ![イメージ説明](87ce324f36888f787855b3985f536918.jpeg)

8

検証③ 追記

2019/03/14 08:38

投稿

carrin
carrin

スコア15

title CHANGED
File without changes
body CHANGED
@@ -156,4 +156,25 @@
156
156
  ```
157
157
  ![イメージ説明](1c638783f479a309e149ba6a20f27a05.jpeg)
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
+ ![イメージ説明](ff2c8811ec9b71450e7bd94988344f3c.jpeg)

7

文言の修正・追記

2019/03/14 08:30

投稿

carrin
carrin

スコア15

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
  ![イメージ説明](a44d3516d0c5649b97f5bfc7d3391a68.png)
133
136
 

6

検証内容を追記

2019/03/14 07:20

投稿

carrin
carrin

スコア15

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
+ ![イメージ説明](a44d3516d0c5649b97f5bfc7d3391a68.png)
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
+ ![イメージ説明](1c638783f479a309e149ba6a20f27a05.jpeg)
155
+
156
+ この状態で実行すると、以下の画像のように抽出される。

5

文言修正

2019/03/14 07:11

投稿

carrin
carrin

スコア15

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

編集内容反映

2019/03/13 07:38

投稿

carrin
carrin

スコア15

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

説明文修正

2019/03/13 07:37

投稿

carrin
carrin

スコア15

title CHANGED
File without changes
body CHANGED
@@ -24,7 +24,7 @@
24
24
  下記の画像のように仕上げるのを目標として
25
25
  色々試行錯誤しているところです。
26
26
 
27
- ![イメージ説明]![イメージ説明](c69d6f8ff7ba01a3591f3b48026dafce.jpeg)
27
+ [完成させたいイメージ]![イメージ説明](c69d6f8ff7ba01a3591f3b48026dafce.jpeg)
28
28
 
29
29
  ```
30
30
  Dim S2 As Worksheet

2

画像修正、文言修正など

2019/03/12 07:04

投稿

carrin
carrin

スコア15

title CHANGED
File without changes
body CHANGED
@@ -6,7 +6,7 @@
6
6
  "値一致シート"のC列の値をA列に転記する。
7
7
  この際転記する値は年(2019など)に変換して表示させたい。
8
8
 
9
- **"値一致シート"**![イメージ説明](356e7eb68879b024c03841c6fe04b741.jpeg)
9
+ **"値一致シート"**![イメージ説明](6fc74f4953342fa2ecf9af9f6063b63e.jpeg)
10
10
  **"値の元"シート**![イメージ説明](78a76fe26ab797038107e50f36e72531.jpeg)
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
+ ![イメージ説明]![イメージ説明](c69d6f8ff7ba01a3591f3b48026dafce.jpeg)
28
+
24
29
  ```
25
30
  Dim S2 As Worksheet
26
31
  Dim ws As Worksheet

1

文法の編集

2019/03/11 06:42

投稿

carrin
carrin

スコア15

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
  値を抽出できないので、やりたいこと②のロジックも