こんにちは。
前回の続き・・・・
「一致した場合の処理」について説明していきたいと思います!
一致したら処理する方法
代表的な構文は
【 If [条件式] Then ~ Else ~ End If 】
です。
これはエクセル関数でも良く使用するものですね。
ちょっと違うのが、関数の場合は、「,」で処理を分けて記載しますが、
マクロでは、”Then”以降に条件にあった処理を、偽の場合は”Else”以降に処理を記載する点です。
また関数では”IF([条件式],[真の処理],IF([条件],・・・・・))”と入れ子で使いますが、
マクロでは”Else”を”ElseIf”として条件式を設定し、”Then”以降に条件に合った処理を記載します。
If [条件式1] Then
条件式1に一致した場合の処理内容
ElseIf [条件式2] Then
条件式2に一致した場合の処理内容
Else
条件式1、2に一致しない場合の処理内容
End If
これを使用すると課題の一覧表Aと一覧表Bで同じ都道府県名であった場合の処理を行うことができます。
課題でみると
条件式・・・一覧表Aの値=一覧表Bの値
一致時の処理・・・一覧表Aの調査日を一覧表Bの調査日に代入
となります。
セルの値を取得するには、前回の説明に出てきました”Cells”を使用します。
【 Cells(行,列).Value 】
これでセルの値を取得することができます。
代入については 【=】(イコール)を使用します。
マクロでは条件式に使用する場合を除いて【=】は「右辺の値を左辺に代入する」という意味になります。
上記を踏まえると一致した場合の処理は
If Cells(行,列).Value = Cells(行,列).Value Then
↑一覧表Aの都道府県名 ↑一覧表B都道府県名
Cells(行,列+1).Value = Cells(行,列+1).Value
↑一覧表Bの調査日の値 ↑一覧表Aの調査日の値
Else
End If
となります。
IF の中の”=”は等号(同じ)の意味となり、”Then”以降の”=”は代入の意味となります。
”Else”以降に何も記載していないのは、条件に一致しなかった場合の処理が無いためです。
無いのなら”Else”は無くてもいいのではと思われた方は正解!です。
一致しない場合の処理が無い場合は”Else”を省略して構いません。
これで、一致した場合の処理
【 If [条件式] Then ~ Else ~ End If 】
の使用方法をご理解いただけたかと思います。
次回は、「データの数だけ繰り返す処理」と「該当するデータが無かった場合のコメント表示」について説明したいと思います。
前回の続き・・・・
「一致した場合の処理」について説明していきたいと思います!
一致したら処理する方法代表的な構文は
【 If [条件式] Then ~ Else ~ End If 】
です。
これはエクセル関数でも良く使用するものですね。
ちょっと違うのが、関数の場合は、「,」で処理を分けて記載しますが、
マクロでは、”Then”以降に条件にあった処理を、偽の場合は”Else”以降に処理を記載する点です。
また関数では”IF([条件式],[真の処理],IF([条件],・・・・・))”と入れ子で使いますが、
マクロでは”Else”を”ElseIf”として条件式を設定し、”Then”以降に条件に合った処理を記載します。
If [条件式1] Then
条件式1に一致した場合の処理内容
ElseIf [条件式2] Then
条件式2に一致した場合の処理内容
Else
条件式1、2に一致しない場合の処理内容
End If
これを使用すると課題の一覧表Aと一覧表Bで同じ都道府県名であった場合の処理を行うことができます。
課題でみると
条件式・・・一覧表Aの値=一覧表Bの値
一致時の処理・・・一覧表Aの調査日を一覧表Bの調査日に代入となります。
セルの値を取得するには、前回の説明に出てきました”Cells”を使用します。
【 Cells(行,列).Value 】
これでセルの値を取得することができます。
代入については 【=】(イコール)を使用します。
マクロでは条件式に使用する場合を除いて【=】は「右辺の値を左辺に代入する」という意味になります。
上記を踏まえると一致した場合の処理は
If Cells(行,列).Value = Cells(行,列).Value Then
↑一覧表Aの都道府県名 ↑一覧表B都道府県名
Cells(行,列+1).Value = Cells(行,列+1).Value
↑一覧表Bの調査日の値 ↑一覧表Aの調査日の値
Else
End If
となります。
IF の中の”=”は等号(同じ)の意味となり、”Then”以降の”=”は代入の意味となります。
”Else”以降に何も記載していないのは、条件に一致しなかった場合の処理が無いためです。
無いのなら”Else”は無くてもいいのではと思われた方は正解!です。
一致しない場合の処理が無い場合は”Else”を省略して構いません。
これで、一致した場合の処理
【 If [条件式] Then ~ Else ~ End If 】
の使用方法をご理解いただけたかと思います。
次回は、「データの数だけ繰り返す処理」と「該当するデータが無かった場合のコメント表示」について説明したいと思います。