VBAで関数を使っていると、「組み込み関数」や「ユーザー定義関数(UDF)」という言葉に出会います。
どちらも「関数」ですが、仕組みや使い方に違いがあります。
この記事では、その違いをわかりやすく解説します。
目次
1. 組み込み関数とは?
**組み込み関数(Built-in Function)**とは、VBAにあらかじめ用意されている関数のことです。
Microsoftによって提供されており、宣言なしですぐに使用できます。
よく使われる組み込み関数の例
関数名 | 説明 | 使用例 |
---|---|---|
MsgBox | メッセージボックスを表示 | MsgBox "こんにちは" |
InputBox | ユーザーから入力を受け取る | InputBox("名前を入力") |
Len | 文字列の長さを取得 | Len("Apple") → 5 |
Now | 現在日時を取得 | Now |
Left | 文字列の左から指定文字数を取得 | Left("Excel", 2) → “Ex” |
これらの関数は、特別な準備をしなくてもそのままコード内で利用できます。
2. ユーザー定義関数(UDF)とは?
**ユーザー定義関数(User Defined Function:UDF)**とは、自分で定義して作る関数のことです。
VBAコードの中でFunction ~ End Function
の形式で作成します。
ユーザー定義関数の例
Function AddTax(price As Double) As Double
AddTax = price * 1.1
End Function
この関数は、渡された金額に10%の税を加算して返す処理です。
'使用例(VBA内)
Dim total As Double
total = AddTax(1000) '結果は1100
Excelワークシート上でもUDFは使えます。
'セルに入力して使用=AddTax(1000)
3. 組み込み関数とUDFの主な違い
項目 | 組み込み関数 | ユーザー定義関数(UDF) |
---|---|---|
定義元 | Microsoft(VBAに標準搭載) | 開発者が自分で定義 |
使用準備 | すぐに使える | Function ステートメントで定義が必要 |
機能の範囲 | 豊富で広範囲 | 自分で設計したロジックのみ |
利用場所 | VBA、ワークシート(関数による) | VBA内、およびワークシートでも使用可能 |
カスタマイズ性 | できない | 自由に設計・変更可能 |
4. UDFを使う場面
ユーザー定義関数は、以下のようなときに活用されます:
- Excel関数にない独自の計算を行いたい
- 複雑なロジックを簡単な関数名で使いたい
- 複数シートで共通する処理を再利用したい
5. 注意点(UDF使用時)
- ワークシートで使うUDFは、セルの再計算タイミングに注意(手動再計算が必要なことも)
- Excel関数のように使えるが、
MsgBox
やInputBox
のようなUI操作はセル上で使えない - UDFを含むファイルは、マクロ有効ブック(*.xlsm)として保存する必要あり
6. まとめ
- 組み込み関数は、VBAに最初から備わっており、すぐに使える便利な関数群。
- **ユーザー定義関数(UDF)**は、自分で作る関数で、必要な処理を自由に設計できる。
- 組み込み関数で足りない処理や、共通化したい計算があれば、UDFが非常に有効です。
関数を上手に使い分けることで、VBAのコードはより整理され、保守性や再利用性が向上します。
ぜひ、組み込み関数の力を活用しつつ、必要に応じてユーザー定義関数も使ってみてください!
コメント