Excel VLOOKUP関数をマクロで書きたい時の考え方

ExcelのVLOOKUP関数をマクロで使いたいけど、どうやったらいいのか分からない…
そんな時は「IF文」を使用してみて下さい。
コードは長くなりますが、書いていることはシンプルで、だいたい同じことができます。

例えば、普通にVLOOKUPを関数を使うと下記のようにA2に「A」と入力されたらB2に「AA」になります。

上記の表を同様にA=AA B=BB C=CC D=DD E=EEと表示させるようにするには、

以下、マクロ。

Sub a()

‘普通、この場合は変数の型を「Long」とするもしれないけど、面倒なのでオールマイティの「Variant」型

Dim r As Variant

‘変数rに「行の高さとしてB1」を指定する(行の高さを指定=.ROWね)
‘指定した行の高さを一つ下げて「今回はB1の下」からはじめる

r = Range(“B1”).Row
r = r + 1

For r = 1 To 1000 ‘上で一つ下げた1行目から順番に1000行目まで実行する

‘ここからは簡単な「IF文」

‘Aのr行目が”A”の場合は、Bのr行目に”AA”と入力する

If Range(“A” & r).Value = “A” Then

Range(“B” & r).Value = “AA”

‘そうじゃくてAのr行目が”B”の場合は、Bのr行目に”BB”と入力する

ElseIf Range(“A” & r).Value = “B” Then

Range(“B” & r).Value = “BB”

‘そうじゃくてAのr行目が”C”の場合は、Bのr行目に”CC”と入力する

ElseIf Range(“A” & r).Value = “C” Then

Range(“B” & r).Value = “CC”

‘そうじゃくてAのr行目が”D”の場合は、Bのr行目に”DD”と入力する

ElseIf Range(“A” & r).Value = “D” Then

Range(“B” & r).Value = “DD”

‘そうじゃくてAのr行目が”E”の場合は、Bのr行目に”EE”と入力する

ElseIf Range(“A” & r).Value = “E” Then

Range(“B” & r).Value = “EE”

‘そうじゃくてAのr行目が”上の何にも当てはまらない”場合は、Bのr行目に空白で入力する

Else

Range(“P” & r).Value = “”
End If

Next

一応、コーピーしやすいようにしておくと、

Sub a()

Dim r As Variant
    r = Range("B1").Row
    r = r + 1

For r = 1 To 1000

    If Range("A" & r).Value = "A" Then
        Range("B" & r).Value = "AA"

    ElseIf Range("A" & r).Value = "B" Then
        Range("B" & r).Value = "BB"

    ElseIf Range("A" & r).Value = "C" Then
        Range("B" & r).Value = "CC"

    ElseIf Range("A" & r).Value = "D" Then
        Range("B" & r).Value = "DD"
    
    ElseIf Range("A" & r).Value = "E" Then
        Range("B" & r).Value = "EE"

    Else
        Range("P" & r).Value = ""
    End If

Next

簡単ですよね。

タイトルとURLをコピーしました