Excel VBA ワークシート関数

ワークシート関数の呼び出し方

VBAからワークシート関数を呼び出すには、ApplicationオブジェクトのWorksheetFunctionプロパティを使う

Application.WorksheetFunction.ワークシート関数

Sub Sample01()
    Range("E1") = Application.WorksheetFunction.Sum(Range("B2:B10"))
    Range("E2") = Application.WorksheetFunction.CountA(Range("A2:A10"))
End Sub

ワークシート関数をセルに入力

A1形式の場合:Range(“A1”).Formula = “=数式”
R1C1形式の場合=Range(“A1”).FormulaR1C1 = “=数式”

Sub Sample02()
    Range("E4").Formula = "=SUM(B2:B10)"
End Sub

ワークシート関数

Sum引数に指定された数値を全て合計(文字列等は無視)
SumIf範囲の中で、指定した条件を満たすセルの値を合計
WorksheetFunction.SumIf(範囲,検索条件[,合計範囲])
SumIfs範囲の中で、指定した複数の条件を満たすセルの値を合計
WorksheetFunction.SumIfs(合計範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], …)
Countセル範囲に含まれる、数値が入っているのセルの個数
WorksheetFunction.Count(Range(セル範囲))
CountAセル範囲に含まれる、空白ではないセルの個数
WorksheetFunction.CountA(Range(セル範囲))
CountBlank指定された範囲に含まれる空白セルの個数
WorksheetFunction.CountBlank(Range(セル範囲))
CountIf範囲の中で、指定した条件を満たすセルの個数
WorksheetFunction.CountIf(Range(セル範囲), 条件)
例:WorksheetFunction.CountIf(Range(“B2:B10”), “>=50”)
CountIfs範囲の中で、指定した複数条件を満たすセルの個数
WorksheetFunction.Countifs(条件範囲1, 検索条件1, [条件範囲2, 検索条件2]…)
DCountリスト、DBの指定された列を検索し、条件を満たすレコードの中で数値が入力されているセルの個数
WorksheetFunction.DCount(データベース, フィールド, 条件)
※ 見出しが必要
例:WorksheetFunction.DCount(Range(“A1:B10”), Range(“B1”), Range(“G1:G2”))
DCountAリスト、DBの指定された列を検索し、条件を満たすレコードの中で空白でないセルの個数
DSumリスト、DBの指定された列を検索し、条件を満たすレコードの合計
WorksheetFunction.DSum(データベース, フィールド, 条件)
※ 見出しが必要
例:WorksheetFunction.DSum(Range(“A1:B10”), Range(“B1”), Range(“H1:H2”))
Find指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その位置番号を返す(大小文字区別)
WorksheetFunction.Find(検索文字列, 対象[, 開始位置])
例:WorksheetFunction.Find(“-“, Range(“D7”))
Indexセル範囲から、指定された行と列が交差する位置
WorksheetFunction.Index(範囲, 行番号[, 列番号])
例:WorksheetFunction.Index(Range(“A2:B10”), 2, 1)
Matchセルの範囲内で指定された項目を検索し、相対的な位置を返す
WorksheetFunction.Match(検索値, 検索範囲, 照合の型)
※検索範囲は1行または1列
※照合の型
 1:検索値以下の最大の値を検索
 0:完全一致 (見つからない場合は#N/Aエラー、ワイルドカード利用可)
 -1:検索値以上の最小の値を検索
例:WorksheetFunction.Match(“a5”, Range(“A2:A10”), 0)
IsErr対象が「#N/A」 を除くエラー値を参照するとき TRUE を返す
WorksheetFunction.IsErr(対象セル)
例:WorksheetFunction.IsErr(Range(“B12”))
IsError対象が任意のエラー値 (#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? または #NULL! のいずれか) を参照するとき TRUEを返す
WorksheetFunction.IsError(対象セル)
IsNA対象がエラー値 #N/Aを参照するとき TRUEを返す
IsText対象が文字列を参照するとき TRUEを返す
IsNonText対象が文字列でない項目を参照するとき TRUEを返す
IsNumber対象が数値を参照するとき TRUEを返す
Text数値を書式設定した文字列に変換
VALUE数値を表す文字列を数値に変換
Transpose配列で指定された範囲のデータの行列変換を行う
WorksheetFunction.Transpose(配列)
例:WorksheetFunction.Transpose(Range(“J1:R2”))

コメント