
『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。
仕事の改善や個人的な知識向上に役立ててください(^o^)
第4回目の今回は
・VBAの関数
について解説していきますので、よろしくお願いします。
前回(第3回)はVBAの変数について説明をしました。こちらもご参考にしてください。
↓サブログ内部リンク(前回:VBAの変数について)↓
-
-
目次
使用頻度高! 『変数』とは?【VBA入門講座#3】
サブローこんにちは。サブローです。 『Microsoft Excel』(以下Excel、エクセル)の中の機能としてある[VBA] について基本的な説明をしていきます。 仕事の改善や個人的な知識向上に役 ...
続きを見る
VBA関数
エクセルでは計算したり、データを抽出したりするために様々な関数を使用することができます。同様にVBAでも様々な種類の関数が存在しており、それをVBA関数と呼びます。
ワークシート関数とVBA関数は別ものですが、関数の名前が同じで同じ機能のもの、内容が若干異なる機能のものがあります。またワークシート関数にしかないもの、逆にVBA関数にしかないものもあります。
VBA関数には大きく分けて4つの分類が存在します。
①文字を操作する関数
⇨Left関数、Instr関数、Replace関数 など
②日付や時刻を操作する関数
⇨Year関数、Now関数など
③データ型を変換する関数
⇨CBool関数、CStr関数など
④その他の関数
⇨MsgBox関数、RGB関数など
各VBA関数に関しては下テーブルを参照ください。
VBA関数名 | 関数の説明 |
---|---|
Abs | 指定した数値の絶対値をかえす |
Array | 指定した要素で作成された配列をかえす |
Asc/AscB/AscW | 指定した文字の文字コードをかえす |
Atn | 指定した数値のアークタンジェントをかえす |
CallByName | 指定したオブジェクトのメソッドを実行、もしくはプロパティを取得 |
CBool | 指定した値をブール型【Boolean】に変換 |
CByte | 指定した値を数値型【Byte】に変換 |
CCur | 指定した値を数値型【Currency】に変換 |
CDate | 指定した値を日付型【Date】に変換 |
CDbl | 指定した値を数値型【Double】に変換 |
CDec | 指定した値を数値型【Decimal】に変換 |
Choose | リストの中から選択した値をかえす |
Chr/ChrB/ChrW | 指定した文字コードに対応する文字をかえす |
CInt | 指定した値を数値型【Integer】に変換 |
CLng | 指定した値を数値型【Long】に変換 |
Cos | 指定した角度の余弦【コサイン】をかえす |
CreateObject | ActiveXオブジェクトへの参照を作成してかえす |
CSng | 指定した値を数値型【Single】に変換 |
CStr | 指定した値を文字列型【String】に変換 |
CurDir | 指定したドライブの現在のパスをかえす |
CVar | 指定した値をバリアント型【Variant】に変換 |
CVDate | 指定した値を内部形式が日付型【Date】のVariant型に変換 |
CVErr | 指定したエラー番号に対応するエラーをかえす |
Date | 現在の日付をかえす |
DateAdd | 日時に指定した時間を加算してかえす |
DateDiff | 二つの日時の間隔をかえす |
DatePart | 任意の日時の特定項目をかえす |
DateSerial | 任意の数値で指定された年月日を日付型に変換 |
DateValue | 任意の文字列で指定された年月日を日付型に変換 |
Day | 指定した日付の日をかえす |
DDB | 指定した方法を使用して特定の期における資産の減価償却費をかえす |
Dir | 指定したパターンに一致するファイルやフォルダをかえす |
DoEvents | プログラムが占領している制御をオペレーティングシステムにかえす |
Environ | 環境変数の値を取得 |
EOF | ランダムアクセスモードまたはシーケンシャル入力モードで開いたファイルの現在位置がファイルの末尾に達している場合にTrueをかえす |
Error | 指定したエラー番号に対応するエラーメッセージをかえす |
Exp | eを底とする数式のべき乗【指数関数】を計算 |
FileAttr | FileOpen関数で開いているファイルのファイルモードをかえす |
FileDateTime | ファイルの作成日時または最終更新日時をかえす |
FileLen | ファイルのサイズをバイト単位でかえす |
Filter | 文字列の配列から指定した文字列だけを含む配列をかえす |
Fix | 指定した数値の整数部をかえす |
Format | 値を指定した書式で文字列型【String】に変換 |
FormatCurrency | システムで定義されている通貨形式に従った文字列をかえす |
FormatDateTime | 指定した日時形式に従った文字列をかえす |
FormatNumber | 指定した数値形式に従った文字列をかえす |
FormatPercent | パーセント形式に従った文字列をかえす |
FreeFile | FileOpen関数で使用可能なファイル番号をかえす |
FV | 定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の将来価値をかえす |
GetAllSettings | SaveSetting関数で保存したレジストリデータを配列形式でかえす |
GetAttr | ファイルまたはフォルダの属性を示す値をかえす |
GetSetting | SaveSetting関数で保存したレジストリデータから指定のキー設定値をかえす |
Hex | 指定した数値を16進数の文字列にしてかえす |
Hour | 指定した時刻の時をかえす |
IIf | 式を評価して2つの値の内1つをかえす |
IMEStatus | IMEの現在の状態をかえす |
Input/InputB | ファイルから指定した文字数の文字列をかえす |
InputBox | ダイアログに入力した文字列をかえす |
InStr/InStrB | 文字列を検索し見つかった最初の位置をかえす |
InStrRev | 文字列の後ろから指定の文字列を検索し、最初に見つかった位置をかえす |
Int | 指定した数値の整数部をかえす |
IPmt | 定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の投資期間内の指定した期に支払う利息をかえす |
IRR | 一連の定期的なキャッシュフローに対する内部利益率をかえす |
IsArray | 指定した値が配列かどうかを判定 |
IsDate | 指定した値を日付型【Date】に変換できるかを判定 |
IsEmpty | 指定した値がEmpty値かどうかを判定 |
IsError | 指定した値がError値【例外型】かどうかを判定 |
IsMissing | プロシージャに省略可能な引数が渡されたかどうかを判定し、結果をブール型でかえす |
IsNull | 指定した値がNull値かどうかを判定 |
IsNumeric | 指定した値を数値型【Integerなど】に変換できるかを判定 |
IsObject | 指定した値がオブジェクトかどうかを判定 |
Join | 文字列の配列を区切り文字で結合してかえす |
Lbound | 配列の最小インデックスをかえす |
Lcase | 指定した文字列内のアルファベットを大文字から小文字に変換 |
Left/LeftB | 文字列の先頭から指定した文字数分の文字列をかえす |
Len/LenB | 文字列の文字数をかえすまたは構造体など型のサイズをかえす |
LoadPicture | 指定のフォームオブジェクトに画像をロード |
Loc | 開いているファイルの、現在の読み込み位置または書き込み位置をかえす |
LOF | FileOpen関数で開いているファイルの長さをかえす |
Log | 自然対数をかえす |
Ltrim | 文字列の先頭のスペースを取り除いてかえす |
Mid/MidB | 文字列の指定した位置から文字数分の文字列をかえす |
Minute | 指定した時刻の分をかえす |
MIRR | 定期的な支払いと収益に対して修正内部利益率をかえす |
Month | 指定した日付の月をかえす |
MonthName | 数値で指定した月を表す文字列をかえす |
MsgBox | メッセージボックスを表示しその結果をかえす |
Now | 現在の日時をかえす |
NPer | 定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の投資に必要な期間をかえす |
NPV | 定期的なキャッシュフローと割引率に基づいて、投資の正味現在価値をかえす |
Oct | 指定した値を8進数で表した文字列でかえす |
Partition | 指定した値が含まれる範囲を求め、その結果を文字列でかえす |
Pmt | 定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の投資に必要な定期支払額をかえす |
PPmt | 定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の指定した期に支払う元金をかえす |
PV | 定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の現在の投資価値をかえす |
QBColor | 指定した色番号に対応するRGBコードを表す数値をかえす |
Rate | 投資期間を通じての利率をかえす |
Replace | 文字列を置換 |
RGB | RGBで示す色の値をかえす |
Right/RightB | 文字列の最後から指定した文字数分の文字列をかえす |
Rnd | 乱数【ランダムな数値】をかえす |
Round | 小数点を偶数丸めした値をかえす |
Rtrim | 文字列の最後のスペースを取り除いてかえす |
Second | 指定した時刻の秒をかえす |
Sgn | 指定した値の符号をかえす |
Shell | 外部プログラムを実行 |
Sin | 指定した角度の正弦【サイン】をかえす |
SLN | 定額法による減価償却費をかえす |
Space | 指定した数のスペースをかえす |
Spc | Print関数またはPrintLine関数と共に使用し、指定した数のスペースを挿入することで出力の位置を移動 |
Split | 区切り文字で区切られた文字列を配列にしてかえす |
Sqr | 指定した数値の平方根をかえす |
Str | 指定した数値を文字列に変換 |
StrComp | 文字列を比較 |
StrConv | 文字列を大文字や全角、ひらがななどに変換してかえす |
String | 文字を指定した数だけ並べてかえす |
StrReverse | 指定した文字列の並びを逆にした文字列をかえす |
Switch | 式のリストを評価し、リストの中で真【True】となる最初の式に関連付けられた値をかえす |
SYD | 定額逓減法による減価償却費をかえす |
Tab | Print関数またはPrintLine関数と共に使用し、指定した数のタブを挿入することで出力の位置を移動 |
Tan | 指定した角度の正接【タンジェント】をかえす |
Time | 現在の時刻をかえす |
Timer | 午前0時から経過した秒数を表す数値をかえす |
TimeSerial | 数値で指定した時刻を表す日付型の値をかえす |
TimeValue | 文字列で指定した時刻を表す日付型の値をかえす |
Trim | 文字列の先頭と最後の空白を取り除いてかえす |
TypeName | 指定した変数の型名をかえす |
Ubound | 配列の最大インデックスをかえす |
Ucase | 指定した文字列内のアルファベットを小文字から大文字に変換 |
Val | 文字列を適切な数値型【Integerなど】に変換してかえす |
VarType | 指定した変数のデータ型を示す数値をかえす |
Weekday | 指定した日付の曜日を数値でかえす |
WeekdayName | 指定した曜日の名前をかえす |
Year | 指定した日付の年をかえす |
マクロの中で計算するには、上記の関数を使用する以外に演算しを使う場合もあります。
・ + :足し算
・ - :引き算
・ * :かけ算
・ / :割り算
・ ^ :べき乗
・ ¥ :割り算の結果の整数部をかえす
・ Mod :割り算の結果の余り部をかえす
・ & :文字を繋げる
・ = :等しい
・ > :より大きい
・ ≧ :以上
・ < :より小さい
・ ≦ :以下
・ <> :等しくない
・ AND :全ての条件を満たす場合は"True"、そうでない場合は"False"をかえす
・ Or :いずれかの条件を満たす場合は"True"、そうでない場合は"False"をかえす
VBA関数の使用例
VBA関数の使用例を4つ紹介します。あくまでも簡単なものなので、これがどのように活用できるのかは今の段階ではわかりにくいですが、このようなものがあるよ程度のかるい気持ちで読んでください。
①MsgBox関数
メッセージを表示するVBA関数です。
<構文サンプル>
Sub tenki()
MsgBox"明日の天気は晴れですか?",vbYesNo,"確認"
End Sub
(結果画面)
"はい"、"いいえ"の選択を分岐として、VBAへの様々な応用が可能になります。
②RGB関数
色を指定するVBA関数です。
<構文サンプル>
Sub IRO()
Range("B2").Interior.Color=RGB(0,255,0)
End Sub
(結果画面)
※色はR=赤(red)、G=緑(green)、B=青(blue)の3色の色の強度によって色が指定されます。
=RGB(0,0,0) ⇨ 黒
=RGB(255,0,0) ⇨ 赤
=RGB(0,255,0) ⇨ 緑
=RGB(0,0,255) ⇨ 青
=RGB(255,255,255) ⇨ 白
③Date関数
(PC上に設定されている)日付がかえされます。
<構文サンプル>
Sub 日付()
Range("B2").Value=Date
End Sub
(結果画面)
④Left関数
文字列の中で左から指定した数分だけの文字列がかえります。
<構文サンプル>
Sub 左()
Dim hidari As String
hidari = "123456"
Range("B2").Value = Left(hidari,2)
End Sub
(結果画面)

下のVBA講座も是非ご覧下さい!!
関連
前回のVBA講座(第3回)
使用頻度高! 『変数』とは?【VBA入門講座#3】
関連
次回のVBA講座(第5回)