|
▼コム義 さん:
>繰り返し(For Next)について、
For Each 〜Nextというのもあります。
>D列はAからCの条件結果について
>50歳以上の男性で日本国籍 ⇒1
>30歳以上の女性で中国国籍 ⇒2
(1)で、ActiveSheetのA列データ範囲を取得します
(2)で、判定結果書込み先D列を クリアしておきます。
(3)で、変数c をつかって A列セルを上から順に下へ降りていきます
そのとき、まず B列の値で分岐します(B列データは 男か女なので)
で、
B列の値が 「男」だったときのみ、
A列を調べ、値が50>= のときのみ、
C列を調べ、値が「日本」のときのみ D列に 1を代入します。
B列の値が「女」のときも、
同様の処理をします。
変数c は Loopの中で 順に変わっていくA列のセルのことです。
たとえば
c が [A1]のとき [B1] は c(1,2) [C1] は c(1,3) と表されます。
c が [A2]のとき [B2] は c(1,2) [C2] は c(1,3) と表されます。
c が [A3]のとき [B3] は c(1,2) [C3] は c(1,3) と表されます。
・・・
Sub Try1() '---- Sheet1
Dim r As Range
Dim c As Range
Set r = Range("A1", Cells(Rows.Count, 1).End(xlUp)) '(1) A列
r.Offset(, 3).ClearContents '(2)
For Each c In r '(3)
Select Case c(1, 2).Value 'B列が
Case "男"
If c.Value >= 50 Then 'A列が
If c(1, 3).Value = "日本" Then c(1, 4).Value = 1
End If
Case "女"
If c.Value >= 30 Then 'A列が
If c(1, 3).Value = "中国" Then c(1, 4).Value = 2
End If
End Select
Next
End Sub
|
|