VBA 組み込み関数

関数

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
Rnd0以上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日後の日付
DateDiff2つの日付の差を計算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プログラムを書く際は積極的に利用しよう!
タイトルとURLをコピーしました