石田修二研究室 > VBA >

関数

ワークシートでよく使う合計を求めるSUM関数,平均を求めるAVERAGE関数のようにExcelに搭載されている関数のことを「ワークシート関数」と呼びます。

一方,VBAにも独自の関数を搭載しています。ここではVBA関数について説明します。

1. 日付や時刻を操作する関数

Now 関数

Now 関数は,現在の日時を返します。引数はありません。

Sub Sample1()
    Range("A1") = Now
End Sub

Now 関数は日付と時刻の両方を返します。年だけや時刻だけを取得したいときは,次の Year 関数や Hour 関数などと組み合わせて使います。

Date 関数

Date 関数は,現在の日付を返します。引数はありません。

Sub Sample1()
    Range("A1") = Date
End Sub

例えば,請求書のシートで,請求日を入れるのに使えます。

Sub 請求日設定()
    ActiveSheet.Range("A1").Value = Date
End Sub

Year 関数,Month 関数,Day 関数

Year 関数は,引数に指定した日付の年を表す数値を返します。Month 関数は,引数に指定した日付の月を表す数値を返します。Day 関数は,引数に指定した日付の日を表す数値を返します。

Hour 関数,Minute 関数,Second 関数

DateSerial 関数

工事中

2. 文字列を操作する関数

Len 関数

Left,Right,Mid 関数

LCase 関数,UCase 関数

LTrim,RTrim,Trim 関数

Replace 関数

InStr 関数

StrConv 関数

Format 関数

書式に指定する主な書式記号は次の通りです。

書式記号説明
#1桁の数値を表す
01桁の数値を表す
,1桁の数値を表す
yy1桁の数値を表す
yyyy1桁の数値を表す
m1桁の数値を表す
mm1桁の数値を表す
d1桁の数値を表す
dd1桁の数値を表す
aaa1桁の数値を表す
aaaa1桁の数値を表す
ddd1桁の数値を表す
dddd1桁の数値を表す
ww1桁の数値を表す
y1桁の数値を表す
oooo1桁の数値を表す
q1桁の数値を表す
g1桁の数値を表す
gg1桁の数値を表す
ggg年号を表す
e和暦年を表す
ee和暦年を表す。1桁の場合は0がつく
h時の数値を表す
hh時の数値を表す。1桁の場合は0がつく
m分の数値を表す
mm分の数値を表す。1桁の場合は0がつく
s秒の数値を表す
ss秒の数値を表す。1桁の場合は0がつく

工事中

3. 数値を操作する関数

Int 関数

数値の小数部を切り捨てて整数部を返します。

Sub IntA1()
    Range("A1").Value = 123.456
    Range("A2").Value = Int(Range("A1").Value)
End Sub

Abs 関数

数値の絶対値を返します。

4. ユーザーと対話する関数

MsgBox 関数

複数の定数を指定する時は,定数を加算します。

Sub Sample()
    MsgBox "保存しますか", vbYesNo + vbQuestion
End Sub

[OK]ボタンと警告メッセージアイコンを表示するステートメント。

Sub Sample()
    MsgBox "入力内容を確認して下さい", vbOKOnly + vbExclamation
End Sub

ダイアログボックスにタイトル(「入力エラー」)を表示するステートメント。

Sub Sample()
    MsgBox "入力内容を確認して下さい", vbOKOnly + vbExclamation, "入力エラー"
End Sub

工事中

InputBox 関数

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

工事中

5. その他の関数

Dir 関数

工事中

Val 関数

Val 関数は,文字列形式の数値を,数値形式に変換した結果を返します。

工事中

6. 関数を組み合わせる

工事中


リンクはご自由にどうぞ。

【石田修二研究室】 【VBAトップページ】