VBAには標準で用意された組み込み関数が多数存在します。これらはプログラマが自分で実装することなく、すぐに使える便利な関数群で、以下のような目的で使われます。
- 数値や文字列の操作
- 日付や時刻の処理
- 論理判定や型変換
- 配列やオブジェクトの操作
- ユーザーとの対話(メッセージ表示や入力)
1. 数値・数学関数
関数名 | 機能 | 例 |
---|
Abs | 数値の絶対値を返す | Abs(-5) → 5 |
Sqr | 平方根を返す | Sqr(9) → 3 |
Int | 小数点以下を切り捨てて整数部分を返す | Int(3.9) → 3 |
Fix | 小数点以下を切り捨て(負数は切り上げ) | Fix(-3.9) → -3 |
Round | 四捨五入して指定桁数の数値を返す | Round(3.14159, 2) → 3.14 |
Rnd | 0以上1未満の乱数を返す | Rnd |
Sin | サイン(正弦)を返す | Sin(3.14/2) → 約1 |
2. 文字列操作関数
関数名 | 機能 | 例 |
---|
Len | 文字列の長さ(バイト数ではなく文字数)を返す | Len("Hello") → 5 |
Mid | 文字列の一部分を取り出す | Mid("Hello", 2, 3) → "ell" |
Left | 文字列の左端から指定文字数を返す | Left("Hello", 2) → "He" |
Right | 文字列の右端から指定文字数を返す | Right("Hello", 3) → "llo" |
Instr | 文字列内で指定文字列が最初に現れる位置を返す | Instr("Hello", "l") → 3 |
Replace | 文字列中の指定文字列を別の文字列に置換する | Replace("Hello", "l", "x") → "Hexxo" |
Trim | 文字列の前後の空白を削除 | Trim(" Hello ") → "Hello" |
StrConv | 文字列の大文字・小文字変換、全角・半角変換など | StrConv("abc", vbUpperCase) → "ABC" |
3. 日付・時刻関数
関数名 | 機能 | 例 |
---|
Now | 現在の日付と時刻を返す | Now |
Date | 現在の日付のみを返す | Date |
Time | 現在の時刻のみを返す | Time |
DateAdd | 日付に指定した時間間隔を加算 | DateAdd("d", 7, Date) → 7日後の日付 |
DateDiff | 2つの日付の差を計算 | DateDiff("d", Date1, Date2) |
Format | 日付・数値を指定書式の文字列に変換 | Format(Date, "yyyy/mm/dd") → "2025/06/15" |
Weekday | 曜日を数字で返す(日曜=1) | Weekday(Date) |
4. 論理判定・型判定関数
関数名 | 機能 | 例 |
---|
IsNumeric | 値が数値かどうか判定 | IsNumeric("123") → True |
IsDate | 値が日付として有効か判定 | IsDate("2025/06/15") → True |
IsEmpty | 変数が初期化されていないか判定 | IsEmpty(var) |
IIf | 条件によって返す値を変える(三項演算子のように) | IIf(x > 0, "正", "負") |
5. 型変換関数
関数名 | 機能 | 例 |
---|
CInt | 値を整数型に変換(四捨五入) | CInt(3.7) → 4 |
CLng | 値を長整数型に変換(四捨五入) | CLng(3.7) → 4 |
CDbl | 値を倍精度浮動小数点に変換 | CDbl("3.14") → 3.14 |
CStr | 値を文字列に変換 | CStr(123) → "123" |
CBool | 値を真偽値に変換 | CBool(0) → False |
CDate | 値を日付型に変換 | CDate("2025/06/15") |
6. 配列・文字列分割・結合関数
関数名 | 機能 | 例 |
---|
Split | 区切り文字で文字列を分割し配列を返す | Split("A,B,C", ",") → 配列("A", "B", "C") |
Join | 配列の要素を連結し文字列にする | Join(Array("A", "B", "C"), "-") → "A-B-C" |
7. ユーザーインターフェース関連
関数名 | 機能 | 例 |
---|
MsgBox | メッセージボックスの表示 | MsgBox "こんにちは" |
InputBox | ユーザーからの入力を受け取る | InputBox("名前を入力してください") |
使い方のポイント
- 関数は
FunctionName(引数1, 引数2, ...)
の形で使います。
- 戻り値があるので、変数に代入したり、式の中で使えます。
- 引数の指定を間違えるとエラーになるので、ドキュメントで確認が必要。
具体例
Sub Example()
Dim s As String
s = InputBox("名前を入力してください")
If Len(s) = 0 Then
MsgBox "名前が入力されていません。"
Else
MsgBox "こんにちは、" & Trim(s) & "さん!"
End If
MsgBox "今日の日付は " & Format(Date, "yyyy年mm月dd日") & " です。"
End Sub
まとめ
- VBAの組み込み関数は膨大で多彩
- 数値計算、文字列操作、日付処理、論理判定、型変換などカテゴリ多数
- コードの簡素化・高速化に大きく貢献
- VBAプログラムを書く際は積極的に利用しよう!