Excel

【Excel】VBAマクロで計算式を埋め込む(変数も)方法(関数:数式:SUMやVLOOKUPなど)

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

この記事では、VBAマクロで計算式を埋め込む(変数も)方法(関数:数式:SUMやVLOOKUPなど)について解説していきます。

ポイントとしてはSUM関数とVLOOKUP関数、さらに文字列結合のテクニックを使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名を少々変わった名称にしております。

そのため、ご活用の際には、適切な英語表記に変更してご利用ください。それでは詳しく見ていきましょう!

VBAマクロで計算式を埋め込む方法(変数)【SUM関数を例に】

それではまず、列ごとの合計を出すSUM関数の使用方法について解説していきます。

初心者にも分かりやすいように、コード内には多くのコメントを入れてありますので、それぞれの行がどのような処理をしているのか理解しやすくなっています。

Sub SumColumns()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Dim saishuuGyou As Long
    Dim keisanShiki As String
    Dim hensuu As String
    
    ' 最終行を取得
    saishuuGyou = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' 各列の合計を計算し、最終行の次に挿入
    For i = 2 To 5 ' A列からE列
        hensuu = Columns(i).Address(False, False)
        keisanShiki = "=SUM(" & hensuu & "2:" & hensuu & saishuuGyou & ")"
        ws.Cells(saishuuGyou + 1, i).Formula = keisanShiki
    Next i
End Sub

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。

コードのAlt+F8を押し、マクロ選択画面でSumColumns関数を実行します。

このマクロはAからE列の2行目から最終行までのデータに対して、それぞれの列の合計値を計算し、最終行の次の行にSUM関数で結果を出力します。

 

VBAマクロで計算式を埋め込む方法(変数) 【VLOOKUP関数を例に】

続いては、VLOOKUP関数を用いた価格検索の自動化について解説していきます。

ここでは、商品名と価格のリスト(A,B列)があり、特定の商品名に対応する価格を自動的に取得する方法(D2とE2セルにアウトプット)を学びます。

Sub VLookupPrice()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Dim shouhinMei As String
    Dim kakaku As Variant
    
    ' D2セルに入力された商品名を変数に格納
    shouhinMei = ws.Range("D2").Value
    
    ' VLOOKUP関数を使用して対応する価格を検索
    kakaku = Application.VLookup(shouhinMei, ws.Range("A:B"), 2, False)
    
    ' E2セルに価格を出力
    ws.Range("E2").Value = kakaku
End Sub
</ pre>

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。

コードのAlt+F8を押し、マクロ選択画面でVLookupPrice関数を実行します。

このマクロは、D2セルに入力された商品名を元に、A列とB列からVLOOKUP関数で価格を検索し、結果をE2セルに表示します。

 

VBAマクロで計算式を埋め込む方法(数式で文字列結合)【Concatenate関数】

最後に、A列とB列にある文字列を結合する方法を見ていきます。

この操作は、2つの異なるデータを1つのセルに表示させたい場合に便利です。

Sub ConcatenateStrings()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Dim saishuuGyou As Long
    Dim retsuA As String, retsuB As String
    
    ' 最終行を取得
    saishuuGyou = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' A列とB列のデータを結合してC列に出力
    For i = 2 To saishuuGyou
        retsuA = ws.Cells(i, 1).Value
        retsuB = ws.Cells(i, 2).Value
        ws.Cells(i, 3).Value = retsuA & " " & retsuB
    Next i
End Sub

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。コードのAlt+F8を押し、マクロ選択画面でConcatenateStrings関数を実行します。このマクロは、A列とB列に入力されたデータを結合し、C列に出力する処理を行います。

 

まとめ VBAマクロで数式や関数をセルに埋め込む(変数も)方法(SUMやVLOOKUPなど)

ここでは、VBAマクロで計算式を埋め込む(変数も)方法(関数:数式:SUMやVLOOKUPなど)について解説しました。

これらの知識を活用することで、Excelの作業効率を大幅に向上させることが可能です。

練習を重ねて、これらの関数を使いこなせるようになりましょう。