雑学

【Excel】エクセルでaならばb,cならばd.eならばfとする方法【if関数やマクロ】

当サイトでは記事内に広告を含みます

 


Sub FillColumnC()

    Dim lastRow As Long '最終行を格納する変数
    Dim i As Long 'ループ処理で使用する変数
    
    '最終行を取得する
    lastRow = Range("B" & Rows.Count).End(xlUp).Row
    
    '各行について処理を行う
    For i = 1 To lastRow
        
        'もしb列の値が「ペン」と等しい場合は、その行のc列に「1」の値を設定する
        If Range("B" & i).Value = "ペン" Then
            Range("C" & i).Value = 1
        End If
        
    Next i '次の行に進む
    
End Sub

上記のコードでは、まず最終行を取得して、その行までループ処理を行います。各行について、もしb列の値が「ペン」と等しい場合は、その行のc列に「1」の値を設定します。最後に、次の行に進んで、次の行で同じ処理を繰り返します。

  

Sub Gender()
    Dim lastRow As Long '最終行を格納する変数
    Dim i As Long 'ループカウンターを格納する変数
    
    lastRow = Cells(Rows.Count, "B").End(xlUp).Row '最終行を取得
    
    'ループを開始
    For i = 2 To lastRow '2行目から開始する(1行目はヘッダー)
        If Cells(i, "B").Value = "男" Then 'もしB列が「男」ならば
            Cells(i, "C").Value = 1 'C列に1を入力する
        ElseIf Cells(i, "B").Value = "女" Then 'もしB列が「女」ならば
            Cells(i, "C").Value = 2 'C列に2を入力する
        End If
    Next i 'ループを終了する
    
End Sub

のコードでは、まず最終行の行番号を取得し、その行番号までの各行に対して、b列の値を判断してc列に対応する数値を入力していきます。

最終行を取得するために、Excel関数「End」を使用し、「xlUp」オプションを指定することで、最終行を検出しています。

ループには「For」文を使用し、開始位置を2とし、1行目をヘッダーとしてスキップします。

また、条件分岐には「If」文を使用して、b列の値が「男」か「女」かを判断しています。最後に、数値を入力するために「Cells」関数を使用して、指定されたセルに値を入力しています。