ワークシートでよく使う合計を求めるSUM関数,平均を求めるAVERAGE関数のようにExcelに搭載されている関数のことを「ワークシート関数」と呼びます。
一方,VBAにも独自の関数を搭載しています。ここではVBA関数について説明します。
Now 関数は,現在の日時を返します。引数はありません。
Sub Sample1()
Range("A1") = Now
End Sub
Now 関数は日付と時刻の両方を返します。年だけや時刻だけを取得したいときは,次の Year 関数や Hour 関数などと組み合わせて使います。
Date 関数は,現在の日付を返します。引数はありません。
Sub Sample1()
Range("A1") = Date
End Sub
例えば,請求書のシートで,請求日を入れるのに使えます。
Sub 請求日設定()
ActiveSheet.Range("A1").Value = Date
End Sub
Year 関数は,引数に指定した日付の年を表す数値を返します。Month 関数は,引数に指定した日付の月を表す数値を返します。Day 関数は,引数に指定した日付の日を表す数値を返します。
工事中
書式に指定する主な書式記号は次の通りです。
| 書式記号 | 説明 |
|---|---|
| # | 1桁の数値を表す |
| 0 | 1桁の数値を表す |
| , | 1桁の数値を表す |
| yy | 1桁の数値を表す |
| yyyy | 1桁の数値を表す |
| m | 1桁の数値を表す |
| mm | 1桁の数値を表す |
| d | 1桁の数値を表す |
| dd | 1桁の数値を表す |
| aaa | 1桁の数値を表す |
| aaaa | 1桁の数値を表す |
| ddd | 1桁の数値を表す |
| dddd | 1桁の数値を表す |
| ww | 1桁の数値を表す |
| y | 1桁の数値を表す |
| oooo | 1桁の数値を表す |
| q | 1桁の数値を表す |
| g | 1桁の数値を表す |
| gg | 1桁の数値を表す |
| ggg | 年号を表す |
| e | 和暦年を表す |
| ee | 和暦年を表す。1桁の場合は0がつく |
| h | 時の数値を表す |
| hh | 時の数値を表す。1桁の場合は0がつく |
| m | 分の数値を表す |
| mm | 分の数値を表す。1桁の場合は0がつく |
| s | 秒の数値を表す |
| ss | 秒の数値を表す。1桁の場合は0がつく |
工事中
数値の小数部を切り捨てて整数部を返します。
Sub IntA1()
Range("A1").Value = 123.456
Range("A2").Value = Int(Range("A1").Value)
End Sub
数値の絶対値を返します。
複数の定数を指定する時は,定数を加算します。
Sub Sample()
MsgBox "保存しますか", vbYesNo + vbQuestion
End Sub

[OK]ボタンと警告メッセージアイコンを表示するステートメント。
Sub Sample()
MsgBox "入力内容を確認して下さい", vbOKOnly + vbExclamation
End Sub
ダイアログボックスにタイトル(「入力エラー」)を表示するステートメント。
Sub Sample()
MsgBox "入力内容を確認して下さい", vbOKOnly + vbExclamation, "入力エラー"
End Sub
工事中
InputBox 関数は,ユーザーが文字列を入力できるダイアログボックスを表示し,ユーザーが入力した文字列を返します。
例題として,1年定期預金の利息計算のシミュレーションをしてみましょう。まず,利子率 r と利子課税率 t は与えられたパラメータで一定とします。その上で,預金額 x をデータとして入力し,1年後の元利合計 y を計算するとします。
Sub risoku()
Cells(1, 2).Value = "1年定期預金の元利合計を計算します。"
Cells(2, 2).Value = "1年定期預金の利息は年利1%です。"
Cells(4, 2).Value = "利息には分離課税で20%の税金がかかります。"
r = 0.01
t = 0.2
x = InputBox("預金額を入力して下さい")
y = (1 + r * (1 - t)) * x
Cells(6, 2).Value = "預金額": Cells(6.3).Value = x
Cells(6, 4).Value = "円"
Cells(8, 2).Value = "1年後の元利合計"
Cells(8, 3).Value = y: Cells(8, 4).Value = "円"
msg = MsgBox(y & "円です。", vbInformation + vbOKOnly, "1年後の元利合計")
End Sub


工事中
工事中
Val 関数は,文字列形式の数値を,数値形式に変換した結果を返します。
工事中
工事中
リンクはご自由にどうぞ。