Excel

【Excel】VBAマクロでセルに関数・数式を入れる(if, vlookup, ダブルコーテーション, 可変, 固定, 空白セル, エラー処理, Range, Cells, IsEmpty)

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

この記事ではVBAマクロでセルに関数・数式を入れる方法について解説していきます。

ポイントとしては`if`, `vlookup`, `Range`, `Cells`, `IsEmpty`を使用することです。

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

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロでセルに関数・数式を入力する方法(if,可変、エラー処理)【Range, IsEmpty】

それではまず、VBAマクロでセルに関数・数式を入力する方法について解説していきます。

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


Sub KeisanKansuuInsert()

    ' 最後の行を取得
    Dim saigyou As Long
    saigyou = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    Dim hensuu As Long
    For hensuu = 1 To saigyou
        ' エラーチェック
        On Error Resume Next
        ThisWorkbook.Sheets("Sheet1").Cells(hensuu, 2).Formula = "=IF(A" & hensuu & "<>"""",A" & hensuu & "+10,"""")"
        On Error GoTo 0
    Next hensuu

End Sub

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

このコードでは、A列の各セルの値が空白でなければ、その値に10を加えた結果になる数式をB列の対応するセルに入力します。

VBAマクロで空白セルにのみ関数・数式を入力する方法【IsEmpty】

続いては、VBAマクロで空白セルにのみ関数・数式を入力する方法について解説していきます。

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


Sub KuuhakuCellInsert()

    ' 最後の行を取得
    Dim saigyou As Long
    saigyou = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    Dim hensuu As Long
    For hensuu = 1 To saigyou
        If IsEmpty(ThisWorkbook.Sheets("Sheet1").Cells(hensuu, 2).Value) Then
            ThisWorkbook.Sheets("Sheet1").Cells(hensuu, 2).Formula = "=A" & hensuu & "*2"
        End If
    Next hensuu

End Sub

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

このコードでは、B列のセルが空白である場合のみ、A列の値を2倍にした値をB列に入力する関数を入れます。

VBAマクロでセルに関数・数式を入力する方法(vlookup,固定,ダブルコーテーション使用、エラー処理)【VLOOKUP, Cells】

続いては、VBAマクロでセルに関数・数式を入力する方法について、特に`vlookup`や固定の参照、ダブルコーテーションの使用方法を中心に解説していきます。

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


Sub VLOOKUPKansuuInsert()

    ' 最後の行を取得
    Dim saigyou As Long
    saigyou = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row

    Dim hensuu As Long
    For hensuu = 1 To saigyou
        ' エラーチェック
        On Error Resume Next
        ThisWorkbook.Sheets("Sheet1").Cells(hensuu, 2).Formula = "=VLOOKUP(A" & hensuu & ",$D$1:$E$10,2,FALSE)"
        On Error GoTo 0
    Next hensuu

End Sub

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

このコードでは、A列の各セルの値をキーにして、D1:E10の範囲でVLOOKUP関数を使用し、一致する2列目の値をB列の対応するセルに入力します。

まとめ

以上でVBAマクロを使ってExcelのセルに関数・数式を入力する方法の基本的な部分をご紹介しました。

マクロをマスターしさらに効率よく生きていきましょう!