VBAでExcelのワークシート関数(Excel関数)を使う方法はとても簡単で、WorksheetFunction
オブジェクトを使います。SUM
や VLOOKUP
、IF
など多くの関数がそのままVBA内で利用できます。
✅ 基本構文
WorksheetFunction.関数名(引数1, 引数2, ...)
✅ よく使う関数のVBAでの使用例
● SUM 関数(合計)
Sub 合計を計算()
Dim total As Double
total = WorksheetFunction.Sum(Range("A1:A10"))
MsgBox "合計は " & total
End Sub
● IF 関数(条件分岐)
Sub IF関数()
Dim result As Variant
Dim value As Double
value = Range("A1").Value
result = WorksheetFunction.If(value > 100, "100より大きい", "100以下")
MsgBox result
End Sub
● VLOOKUP 関数
Sub VLOOKUP使用()
Dim result As Variant
result = WorksheetFunction.VLookup("検索値", Range("A2:C10"), 2, False)
MsgBox "検索結果は:" & result
End Sub
※ VLookup
は見つからないとエラーになります。エラー処理も入れると安全です。
● ROUND(四捨五入)
Sub ROUND使用()
Dim rounded As Double
rounded = WorksheetFunction.Round(123.4567, 2)
MsgBox "四捨五入結果:" & rounded
End Sub
✅ エラーに強くする方法(Application.WorksheetFunction vs Application)
方法 | 特徴 |
---|---|
Application.WorksheetFunction.X | 関数エラーで VBAエラー になる(厳密) |
Application.X | エラーでも CVErr などの値を返してくれる(安全) |
🔄 例:安全な VLookup
Sub VLOOKUP_安全版()
Dim result As Variant
result = Application.VLookup("検索値", Range("A2:C10"), 2, False)
If IsError(result) Then
MsgBox "見つかりませんでした。"
Else
MsgBox "結果は:" & result
End If
End Sub
✅ 使える代表的なExcel関数(VBA対応)
関数名 | VBAでの書き方 |
---|---|
SUM | WorksheetFunction.Sum(...) |
AVERAGE | WorksheetFunction.Average(...) |
COUNT | WorksheetFunction.Count(...) |
MAX / MIN | WorksheetFunction.Max(...) |
VLOOKUP | WorksheetFunction.VLookup(...) |
MATCH / INDEX | WorksheetFunction.Match(...) / Index(...) |
IF | WorksheetFunction.If(...) |
ROUND | WorksheetFunction.Round(...) |
✅ 補足:独自関数を使いたいとき
- VBAでは**カスタム関数(ユーザー定義関数、UDF)**も定義できます。
- それを
=MyFunc(A1)
のようにシート上から呼び出すことも可能です。