VBA Excelのワークシート関数(Excel関数)

オブジェクト

VBAでExcelのワークシート関数(Excel関数)を使う方法はとても簡単で、WorksheetFunctionオブジェクトを使います。SUMVLOOKUPIF など多くの関数がそのまま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での書き方
SUMWorksheetFunction.Sum(...)
AVERAGEWorksheetFunction.Average(...)
COUNTWorksheetFunction.Count(...)
MAX / MINWorksheetFunction.Max(...)
VLOOKUPWorksheetFunction.VLookup(...)
MATCH / INDEXWorksheetFunction.Match(...) / Index(...)
IFWorksheetFunction.If(...)
ROUNDWorksheetFunction.Round(...)

✅ 補足:独自関数を使いたいとき

  • VBAでは**カスタム関数(ユーザー定義関数、UDF)**も定義できます。
  • それを =MyFunc(A1) のようにシート上から呼び出すことも可能です。
タイトルとURLをコピーしました