公開日:2018-03-09 最終更新日:2019-08-26
関数
・よく使う関数
【ここでのポイント】
「良く使う」かどうかは、人によって、使い方によって変わってきます。
統計分析をする、財務会計データを加工する、実験データを整理する、アンケートを集計する、・・・
それぞれ必要となる関数は違ってきます。
VBA関数は、形違いも含めると全部で170個以上あります。
そこで、
Excelでどのような業務をしていたとしても、多くの(過半数の)人が必要となる関数に絞ります。
公式テキストのこの章では、数個の関数を紹介しているだけですが、
これは、そこまでの章で紹介していない関数だけをここに抜き出したという事でしょう。
以下では、
試験に出る可能性のある関数+実務で必要な関数として、
65個の関数に厳選しました。
各リンク先の解説ページを一通り読んでおきましょう。
文字列操作
文字列操作は、しっかり覚えて下さい。
必ずと言って良いほどの頻度で試験に出されるはずです。
Format・Format関数 ・表示書式指定文字 ・Format$関数 ・使用例
式を指定した書式に変換し、その文字列を示すバリアント型の値を返します
ReplaceReplace関数は、指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します。引数compareの指定りより、全角半角、大文字小文字の扱いが変わります。Replace関数 Replace(expression,find,replace[,start[,count[,compare]]]) …
指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します
StrConv・StrConv関数 ・StrConv関数の注意点 ・StrConv関数の使用例
変換した文字列をバリアント型で返します
ValVal関数は、指定した文字列に含まれる数値を適切なデータ型に変換して返します。Val関数 Val(string) string 任意の文字列式を指定します。この引数は必ず指定します。文字列中に数字以外の文字が見つかると、Val関数は読み込みを中止します。
指定した文字列に含まれる数値を適切なデータ型に変換して返します
Len・Len関数 ・LenB関数 ・Len関数の注意点 ・Len関数の使用例
指定した文字列の文字数または指定した変数に必要なバイト数を表す長整数型の値を返します
LCase・LCase関数 ・LCase$関数 ・LCase関数の使用例
アルファベットの大文字を小文字に変換する文字列処理関数です
UCase・UCase関数 ・UCase$ ・UCase関数の使用例
バリアント型の値を返します。指定したアルファベットの小文字を大文字に変換する文字列処理関数です
Left・Left関数 ・LeftB関数 ・Left$関数、LeftB$関数 ・Left関数の使用例
バリアント型の値を返します。文字列の左端から指定した文字数分の文字列を返します
Mid・Mid関数 ・MidB関数 ・Mid$関数、MidB$関数 ・Mid関数の使用例
バリアント型の値を返します。文字列から指定した文字数分の文字列を返します
Right・Right関数 ・RightB関数 ・Right$関数、RightB$関数 ・Right関数の使用例
バリアント型の値を返します。文字列の右端から指定した文字数分の文字列を返します
Trim・Trim関数 ・Trim$関数 ・ワークシートのTRIM関数との違い ・Trim関数の使用例
指定した文字列から先頭と末尾の両方のスペースを削除した文字列を表すバリアント型の値を返します
LTrim・LTrim関数 ・LTrim$関数 ・LTrim関数の使用例
指定した文字列から先頭のスペースを削除した文字列を表すバリアント型の値を返します
RTrim・RTrim関数 ・RTrim$関数 ・RTrim関数の使用例
指定した文字列から末尾のスペースを削除した文字列を表すバリアント型の値を返します
型変換
型変換は覚えるほどのものでもなく、型の名称を知っていれば大抵は分かることです。
CBool・CBool関数 ・CBool関数の使用例 ・ブール型 (Boolean)について ・CBool関数の参考 ・データ型変換関数一覧
ブール型のデータ型に変換します。任意の有効な文字列または数値
CByte・CByte関数 ・CByte関数の使用例 ・バイト型 (Byte)について ・データ型変換関数一覧
バイト型(Byte)のデータ型に変換します
CDate・CDate関数 ・CDate関数の使用例 ・日付型 (Date)について ・データ型変換関数一覧
日付型(Date)のデータ型に変換します。任意の有効な日付
CDbl・CDbl関数 ・CDbl関数の使用例 ・倍精度浮動小数点数型 (Double)について ・データ型変換関数一覧
倍精度浮動小数点数型(Double)のデータ型に変換します
CInt・CInt関数 ・CInt関数の使用例 ・整数型 (Integer)について ・データ型変換関数一覧
整数型のデータ型に変換します。-32,768~32,767。小数部分は丸められます
CLng・CLng関数 ・CLng関数の使用例 ・について ・データ型変換関数一覧
長整数型のデータ型に変換します。-2,147,483,648~2,147,483,647。小数部分は丸められます
CSng・CSng関数 ・CSng関数の使用例 ・単精度浮動小数点数型 (Single)について ・データ型変換関数一覧
単精度浮動小数点数型(Single)のデータ型に変換します
CStr・CStr関数 ・CStr関数の使用例 ・文字列型 (String)について ・データ型変換関数一覧
文字列型のデータ型に変換します。CStrの戻り値は引数expressionにより異なります
データ判定
Is関数は、どのような関数があるかを覚えれば良いだけです。
InStr・InStr関数 ・InStrB関数 ・InStr関数の使用例 ・InStr関数の応用例1 ・InStr関数の応用例2 ・InStr関数の応用例3 ・InStr関数の練習問題 ・ ・
ある文字列の中から指定した文字列を検索し、最初に見つかった文字位置(先頭からその位置までの文字数)を返す文字列処理関数です
InStrRevInStrREv関数は、文字列の中から指定した文字列を最後の文字位置から検索を開始し、最初に見つかった文字位置を返す文字列処理関数です。バリアント型(内部処理形式StringのVariant)で返します。InStrRev関数 InstrRev(stringcheck,stringmatch[,start[,
ある文字列の中から指定された文字列を最後の文字位置から検索を開始し、最初に見つかった文字位置(先頭からその位置までの文字数)を返す文字列処理関数です
IsArray・IsArray関数 ・IsArray関数の使用例 ・Is○○関数一覧
変数が配列であるかどうかを調べ、結果をブール型で返します
IsDate・IsDate関数 ・IsDate関数の使用例 ・Is○○関数一覧
式を日付に変換できるかどうかを調べ、結果をブール型で返します
IsEmpty・IsEmpty関数 ・IsEmpty関数の使用例 ・Is○○関数一覧
変数がEmpty値かどうかを調べ、結果をブール型で返します
IsNumeric・IsNumeric関数 ・IsNumeric関数の使用例 ・Is○○関数一覧
式が数値として評価できるかどうかを調べ、結果をブール型で返します
IsMissing・IsMissing関数 ・IsMissing関数の使用例 ・Is○○関数一覧
プロシージャを呼び出すときに省略可能なバリアント型の引数がプロシージャに渡されたかどうかを調べるために使用します
TypeNameTypeName関数は、引数で指定された変数に関する情報を文字列で返します。TypeName関数 TypeName(varname) varname 必ず指定します。ユーザー定義型の変数を除く、任意のバリアント型(Variant)の変数を指定します。
変数に関する情報を提供する文字列型の文字列を返します
日付時刻
日付時刻は、そのほとんどは英単語そのものです。
日付関数と時刻関数は、日付と時刻の違いだけで同様機能となっています。
従って、覚えると言っても数は実質半分です。
DateDate関数は、現在のシステムの日付を返します、バリアント型(内部処理形式DateのVariant)の値を返します。Date関数 Date 現在の日付を設定するには、Dateステートメントを使います。グレゴリオ暦の場合、DateとDate$の動作は同じです。
現在のシステムの日付を含むバリアント型の値を返します
NowNow関数は、コンピュータのシステムの日付と時刻の設定に基づいて、現在の日付と時刻を返します、バリアント型(内部処理形式DateのVariant)の値を返します。Now関数 Now() ()は省略可能です。Now Now関数の使用例 MsgBoxNow…2013/06/0912:57:46現在の日時 OfficeV…
コンピュータのシステムの日付と時刻の設定に基づいて、現在の日付と時刻を表すバリアント型の値を返します
DateAdd・DateAdd関数 ・DateAdd関数の注意点 ・DateAdd関数の使用例
指定された時間間隔を加算した日付をバリアント型の値で返します
DateDiffDateDiff関数は、2つの指定した日付の時間間隔を表す値を返します。ワークシート関数のDATEDIF関数とはスペルも引数も違います、さらに、年の計算は違ったものとなっていますので注意してください。DateDiff関数 DateDiff(interval,date1,date2[,firstdayofweek[,
2つの指定した日付の時間間隔を表すバリアント型の値を指定します
DateSerialDateSerial関数は、引数に指定した年、月、日に対応する日付を返す関数です、バリアント型(内部処理形式DateのVariant)の値を返します。DateSerial関数 DateSerial(year,month,day) year 必ず指定します。
引数に指定した年、月、日に対応するバリアント型の値を返す関数です
DateValueDateValue関数は、日付を表す文字列式を日付に変換します、バリアント型(内部処理形式DateのVariant)の値を返します。DateValue関数 DateValue(date) date 必ず指定します。引数dateには、通常、100年1月1日から9999年12月31日までの範囲の日付を表す文字列式を指定…
日付を表すバリアント型の値を返します
TimeSerialTimeSerial関数は、引数で指定した時、分、秒に対応する時刻を返します、バリアント型(内部処理形式DateのVariant)の値を返します。TimeSerial関数 TimeSerial(hour,minute,second) hour 必ず指定します。
引数で指定した時、分、および秒に対応する時刻を含むバリアント型の値を返します
TimeValueTimeValue関数は、時刻を表す文字列式を時刻に変換します、バリアント型(内部処理形式DateのVariant)の値を返します。TimeValue関数 TimeValue(time) time 必ず指定します。通常0:00:00(12:00:00AM)~23:59:59(11:59:59PM)の範囲の時刻を表す…
時刻を表すバリアント型の値を返します
WeekdayWeekday関数は、何曜日であるかを表す整数を返します、バリアント型(内部処理形式IntegerのVariant)の値を返します。Weekday関数 Weekday(date,[firstdayofweek]) date 必ず指定します。
何曜日であるかを表す整数を表すバリアント型の値を返します
YearYear関数は、日付から年の値を返します、バリアント型(内部処理形式IntegerのVariant)の値を返します。Year関数 Year(date) date 必ず指定します。日付を表すバリアント型(Variant)の値、数式、文字列式、またはこれらを組み合わせた値を指定します。
年を表すバリアント型の値を返します
MonthMonth関数は、日付から何月かを表す月の値を返します、バリアント型(内部処理形式IntegerのVariant)の値を返します。Month関数 Month(date) date 必ず指定します。日付を表すバリアント型(Variant)の値、数式、文字列式、またはこれらを組み合わせた値を指定します。
1年の何月かを表す0~12の範囲の整数を表すバリアント型の値を返します
DayDay関数は、日付から何日かを表す日の値を返します、バリアント型(内部処理形式IntegerのVariant)の値を返します。Day関数 Day(date) date 必ず指定します。日付を表すバリアント型(Variant)の値、数式、文字列式、またはこれらを組み合わせた値を指定します。
月の何日かを表す1~31の範囲の整数を表すバリアント型の値を返します
HourHour関数は、時刻から時の整数を返します、バリアント型(内部処理形式DateのVariant)の値を返します。Hour関数 Hour(time) time 必ず指定します。時刻を表す任意のバリアント型(Variant)の値、数式、文字列式、またはこれらを組み合わせた値を指定します。
1日の時刻を表す0~23の範囲の整数を表すバリアント型の値を返します
MinuteMinute関数は、時刻から分の整数を返します、バリアント型(内部処理形式DateのVariant)の値を返します。Minute関数 Minute(time) time 必ず指定します。時刻を表す任意のバリアント型(Variant)の値、数式、文字列式、またはこれらを組み合わせた値を指定します。
時刻の分を表す0~59の範囲の整数を表すバリアント型の値を返します
SecondSecond関数は、時刻から分の整数を返します、バリアント型(内部処理形式DateのVariant)の値を返します。Second関数 Seconde(time) time 必ず指定します。時刻を表す任意のバリアント型(Variant)の値、数式、文字列式、またはこれらを組み合わせた値を指定します。
時間の秒を表す0~59の範囲の整数を表すバリアント型の値を返します
配列
配列関数については、後の章で取り上げていますので、
そこで、実際の使い方を学習してください。
ArrayArray関数は、配列が格納されたバリアント型(Variant)の値を返します。Array関数 Array(arglist) arglist 通常必ず指定します。値のリストをカンマ(,)で区切って指定します。
配列が格納されたバリアント型(Variant)の値を返します
LBound・LBound関数 ・LBound関数の注意点 ・LBound関数の使用例
配列の指定された次元で使用できる最小の添字を、長整数型の値で返します
UBound・UBound関数 ・UBound関数の注意点 ・UBound関数の使用例
配列の指定された次元で使用できる添字の最大値を、長整数型の値で返します
Split・Split関数 ・Split関数注意点 ・Split関数ま使用例
各要素ごとに区切られた文字列から1次元配列を作成し、返します
ファイル操作
ファイル操作の関数については、後の章で取り上げていますので、
そこで、実際の使い方を学習してください。
DirとEOF以外は、試験に出る可能性は低いと思います。
DirDir関数は、指定したパターンやファイル属性と一致するファイルまたはフォルダの名前を返します、ドライブのボリュームラベルも取得できます、文字列型(String)の値を返します。Dir関数 Dir[(pathname[,attributes])] pathname 省略可能です。
指定したパターンやファイル属性と一致するファイルまたはフォルダの名前を表す文字列型の値を返します。ドライブのボリュームラベルも取得できます
EOFEOF関数は、ランダムアクセスモードまたはシーケンシャル入力モードで開いたファイルの現在位置がファイルの末尾に達している場合、真(True)を返します。EOF関数 EOF(filenumber) filenumber 任意の有効なファイル番号を表す整数型(Integer)の数値を指定します。
ランダムアクセスモードまたはシーケンシャル入力モードで開いたファイルの現在位置がファイルの末尾に達している場合、ブール型の値の真(True)を含む整数型の値を返します
FileDateTimeFileDateTime関数は、指定したファイルの作成日時または最後に修正した日時を返します、バリアント型(内部処理形式DateのVariant)の値を返します。FileDateTime関数 FileDateTime(pathname) pathname 必ず指定します。
指定したファイルの作成日時または最後に修正した日時を示すバリアント型の値を返します
FileLenFileLen関数は、ファイルのサイズをバイト単位で表す長整数型(Long)の値を返します。FileLen関数 FileLen(pathname) pathname 必ず指定します。引数pathnameには、ファイル名を示す文字列式を指定します。
ファイルのサイズをバイト単位で表す長整数型の値を返します
FreeFileFreeFile関数は、使用可能なファイル番号を整数型(Integer)の値で返します。FreeFile関数 FreeFile[(rangenumber)] rangenumber この引数は省略可能です。ファイル番号の範囲をバリアント型(Variant)で指定します。
使用可能なファイル番号を整数型の値で返すファイル入出力関数です
GetAttrGetAttr関数は、ファイルまたはフォルダの属性を表す整数型(Integer)の整数を返します。GetAttr関数 GetAttr(pathname) pathname 必ず指定します。引数pathnameには、ファイル名を示す文字列式を指定します。
ファイルまたはフォルダの属性を表す整数型の整数を返します
数学/財務
試験対策というより、VBAをやっていくうえで一応は知っておくべき関数です。
AbsAbs関数は、引き渡した数値の絶対値を同じデータ型で返します。Abs関数 Abs(number) number 必ず指定します。任意の数式を指定します。引数numberにNull値が含まれている場合、Abs関数はNull値を返します。
引き渡した数値の絶対値を同じデータ型で返します
FixFix関数は、指定した数値の整数部分を返します。Fix関数 Fix(number) number 必ず指定します。倍精度浮動小数点数型(Double)の数値または任意の有効な数式を指定します。Null値が含まれている場合は、Null値を返します。
指定した数値の整数部分を返します
IntInt関数は、指定した数値の整数部分を返します。Int関数 Int(number) number 必ず指定します。倍精度浮動小数点数型(Double)の数値または任意の有効な数式を指定します。Null値が含まれている場合は、Null値を返します。
指定した数値の整数部分を返します
Rnd・Rnd関数 ・Rnd関数の注意点 ・Rnd関数の使用例
単精度浮動小数点数型の乱数を返します
Round・Round関数 ・Round関数の注意 ・Round関数の使用例
指定された小数点位置で丸めた数値を返します
その他
特殊な関数になります。
DoEvents、RGB、Shell、これらは試験には出ないと思いますが、実務では必須です。
CreateObject・CreateObject関数の構文 ・CreateObjectの解説 ・CreateObject関数の使用例 ・GetObject関数
ActiveXオブジェクトへの参照を作成して、返します
DoEventsDoEvents関数は、発生したイベントがOSによって処理されるように、プログラムで占有していた制御をOSに渡します。DoEvents関数 構文 DoEvents 説明 開かれているフォームの数を返します。開かれているフォームが無ければ0返します。
発生したイベントがオペレーティングシステムによって処理されるように、プログラムで占有していた制御をオペレーティングシステムに渡すフロー制御関数です
InputBoxInputBox関数は、ダイアログボックスにメッセージとテキストボックスを表示し、文字列が入力されるか、またはボタンがクリックされると、テキストボックスの内容を返します。InputBox関数 構文 InputBox(prompt[,title][,default][,xpos][,ypos] [,helpfile,
文字列型の値を返します。ダイアログボックスにメッセージとテキストボックスを表示し、文字列が入力されるか、またはボタンがクリックされると、テキストボックスの内容を返します
MsgBox・MsgBox関数の構文 ・戻り値の定数:VbMsgBoxResult列挙 ・MsgBox関数の使用例
整数型の値を返します。ダイアログボックスにメッセージを表示し、ボタンがクリックされるのを待って、どのボタンがクリックされたのかを示す値を返します
RGBRGB関数は、引数(red,green,blue)の色のRGB値を表す長整数型(Long)の値を返します。RGB関数 RGB(red,green,blue) red 必ず指定します。この名前付き引数は、バリアント型(内部処理形式IntegerのVariant)のデータ形式で指定します。
色のRGB値を表す長整数型の値を返します
ShellShell関数は、実行可能プログラムを実行し、実行が完了するとプログラムのタスクIDを示すバリアント型の値を返します、プログラムの実行に問題が発生した場合は、0を返します。Shell関数 Shell(pathname[,windowstyle]) 使用例 Shell"notepad.exe"&a…
実行可能プログラムを実行し、実行が完了するとプログラムのタスクIDを示すバリアント型の値を返します。プログラムの実行に問題が発生した場合は、0を返します
【業務改善の実務】
実務としては、関数の使い方を覚えるというより、どんな関数があるかを知っておくことが重要です。
何かをするときに、関数の存在さえ知っていれば、関数の使い方等の詳細は、その時点で調べれば良い事です。
逆に、関数の存在を知らないと、解決方法を見つけられず調べることも出来なくなってしまいます。
一通りどのような関数があるかを見て下さい。
ただし、日付、文字列、このあたりの使用頻度が高い関数は、いちいち調べなくても使えるようにしておきましょう。
【本サイト内の関連ページ】
VBA関数の一覧マクロVBA関数の一覧と解説です、どんな関数があるかは一度は確認しておくとをお勧めいたします。どんな関数があるだけでも知っておけば、詳細の使い方は実際に使うときに調べても良いでしょう。文字列操作…34 分岐…3 型変換…14 データ判定…10 日付時刻…20 配列…6 ファイル操作…14 数学/財務…28 その他……
ExcelマクロVBA・文字列操作:マクロVBA関数 ・分岐:マクロVBA関数 ・型変換:マクロVBA関数 ・データ判定:マクロVBA関数 ・日付時刻:マクロVBA関数 ・配列:マクロVBA関数 ・ファイル操作:マクロVBA関数 ・数学/財務:マクロVBA関数 ・その他:マクロVBA関数
第44回.VBA関数について・VBA関数の書き方 ・関数の戻り値を使わない場合 ・名前付き引数 ・○○○B関数 ・○○○$関数 ・ワークシート関数との関係 ・自動メンバ表示 ・習得すべき関数 ・最後に
第45回.VBA関数(Format)・Format関数 ・日付/時刻表示書式指定文字 ・数値表示書式指定文字 ・文字列表示書式指定文字 ・Format関数の使用例 ・※セルに出力する場合 ・最後に
第46回.VBA関数(日付,DateAdd)・日付時刻に関するVBA関数の一覧 ・DateAdd関数の構文 ・DateAdd関数の使用例
第47回.VBA関数(文字列操作,Replace,InStr,StrConv)・文字列操作に関するVBA関数の一覧 ・Replace関数 ・InStr関数 ・StrConv関数 ・最後に
第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)・数学VBA関数の一覧 ・データ型確認のVBA関数一覧 ・データ型変換のVBA関数一覧
第113回.配列に関連する関数・LBound関数とUBound 関数 ・Array関数 ・IsArray 関数 ・Join関数 ・Filter関数 ・Eraseステートメント
VBAエキスパート公式テキスト
2019/5/30発売
リニューアル版
2019/7/26発売
リニューアル版
こちらは必須として購入した方が良いでしょう。
ちょっと高いなーとは思いますが、
書籍を購入することで、学習用データが提供されています。
・サンプルブック
・VBAエキスパート模擬問題
これらが使えるようになります。
このシリーズでは、
テキストを読みながら学習していることを前提とします。
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。