Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


14935 / 76734 ←次へ | 前へ→

【67285】Re:IF構文の繰り返しについて
発言  kanabun  - 10/11/19(金) 23:31 -

引用なし
パスワード
   ▼コム義 さん:

>繰り返し(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

3 hits

【67283】IF構文の繰り返しについて コム義 10/11/19(金) 22:26 質問
【67284】Re:IF構文の繰り返しについて ponpon 10/11/19(金) 23:13 発言
【67285】Re:IF構文の繰り返しについて kanabun 10/11/19(金) 23:31 発言
【67287】Re:IF構文の繰り返しについて コム義 10/11/20(土) 18:20 お礼

14935 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free