VBAエキスパート対策
関数

Excel VBAエキスパート対策です
最終更新日:2018-03-16

関数


・よく使う関数



【ここでのポイント】

「良く使う」かどうかは、人によって、使い方によって変わってきます。
統計分析をする、財務会計データを加工する、実験データを整理する、アンケートを集計する、・・・
それぞれ必要となる関数は違ってきます。


VBA関数は、形違いも含めると全部で170個以上あります。

そこで、
Excelでどのような業務をしていたとしても、多くの(過半数の)人が必要となる関数に絞ります。

公式テキストのこの章では、数個の関数を紹介しているだけですが、
これは、そこまでの章で紹介していない関数だけをここに抜き出したという事でしょう。

以下では、
試験に出る可能性のある関数+実務で必要な関数として、
65個の関数に厳選しました。
各リンク先の解説ページを一通り読んでおきましょう。


文字列操作

文字列操作は、しっかり覚えて下さい。
必ずと言って良いほどの頻度で試験に出されるはずです。

Format
式を指定した書式に変換し、その文字列を示すバリアント型の値を返します

Replace
Replace関数は、指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します。Replace関数 Replace(expression,find,replace[,start[,count[,compare]]]) expression 必ず,Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
指定された文字列の一部を、別の文字列で指定された回数分で置換した文字列を返します

StrConv
StrConv関数は、指定された変換方式で変換した文字列を返します、バリアント型(内部処理形式StringのVariant)で返します。StrConv関数 StrConv(string,conversion,LCID) string 必ず指定します。Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
変換した文字列をバリアント型で返します

Val
Val関数は、指定した文字列に含まれる数値を適切なデータ型に変換して返します。Val関数 Val(string) string 任意の文字列式を指定します。Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
指定した文字列に含まれる数値を適切なデータ型に変換して返します

Len
指定した文字列の文字数または指定した変数に必要なバイト数を表す長整数型の値を返します


LCase
アルファベットの大文字を小文字に変換する文字列処理関数です

UCase
UCase関数は、アルファベットの小文字を大文字に変換する文字列処理関数です。UCase関数 UCase(string) charcode 任意の文字列式を指定します。Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
バリアント型の値を返します。指定したアルファベットの小文字を大文字に変換する文字列処理関数です


Left
バリアント型の値を返します。文字列の左端から指定した文字数分の文字列を返します

Mid
バリアント型の値を返します。文字列から指定した文字数分の文字列を返します

Right
Right関数は、文字列の右端から指定した文字数分の文字列を返します、バリアント型(内部処理形式StringのVariant)の値を返します。Right関数 Left(string,length) string 必ず指定します。Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
バリアント型の値を返します。文字列の右端から指定した文字数分の文字列を返します


Trim
Trim関数は、指定した文字列から先頭と末尾の両方のスペースを削除した文字列を表す値を返します、バリアント型(内部処理形式StringのVariant)の値を返します。Trim関数 Trim(string) string 任意の文字列式を指定します。Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
指定した文字列から先頭と末尾の両方のスペースを削除した文字列を表すバリアント型の値を返します

LTrim
指定した文字列から先頭のスペースを削除した文字列を表すバリアント型の値を返します

RTrim
RTrim関数は、指定した文字列から末尾のスペースを削除した文字列を返します、バリアント型(内部処理形式StringのVariant)の値を返します。RTrim関数 RTrim(string) string 任意の文字列式を指定します。Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
指定した文字列から末尾のスペースを削除した文字列を表すバリアント型の値を返します

型変換

型変換は覚えるほどのものでもなく、型の名称を知っていれば大抵は分かることです。

CBool
ブール型のデータ型に変換します。任意の有効な文字列または数値

CByte
バイト型(Byte)のデータ型に変換します

CDate
日付型(Date)のデータ型に変換します。任意の有効な日付

CDbl
倍精度浮動小数点数型(Double)のデータ型に変換します

CInt
整数型のデータ型に変換します。-32,768〜32,767。小数部分は丸められます

CLng
長整数型のデータ型に変換します。-2,147,483,648〜2,147,483,647。小数部分は丸められます

CSng
単精度浮動小数点数型(Single)のデータ型に変換します

CStr
文字列型のデータ型に変換します。CStrの戻り値は引数expressionにより異なります

データ判定

Is関数は、どのような関数があるかを覚えれば良いだけです。

InStr
Instr関数は、VBAでは頻繁に使われる必須関数で、シート関数のFIND関数と同様機能のVBA関数になります。文字列の中から指定した文字列を先頭から検索し、最初に見つかった文字位置を返す文字列処理関数で、検索文字が見つからなかった場合は0を返します。Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
ある文字列の中から指定した文字列を検索し、最初に見つかった文字位置(先頭からその位置までの文字数)を返す文字列処理関数です

InStrRev
InStrREv関数は、文字列の中から指定した文字列を最後の文字位置から検索を開始し、最初に見つかった文字位置を返す文字列処理関数です、バリアント型(内部処理形式StringのVariant)で返します。InStrRev関数 InstrRev(stringcheck,Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
ある文字列の中から指定された文字列を最後の文字位置から検索を開始し、最初に見つかった文字位置(先頭からその位置までの文字数)を返す文字列処理関数です

IsArray
変数が配列であるかどうかを調べ、結果をブール型で返します

IsDate
IsDate関数は、式を日付に変換できるかどうかを調べ、結果をブール型(True,False)で返します。IsDate関数 StrConv(string,conversion,LCID) expression は必ず指定します。Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
式を日付に変換できるかどうかを調べ、結果をブール型で返します

IsEmpty
IsEmpty関数は、変数がEmpty値かどうかを調べ、結果をブール型(True,False)で返します。IsEmpty関数 IsEmpty(expression) expression 必ず指定します。Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
変数がEmpty値かどうかを調べ、結果をブール型で返します

IsNumeric
式が数値として評価できるかどうかを調べ、結果をブール型で返します

IsMissing
プロシージャを呼び出すときに省略可能なバリアント型の引数がプロシージャに渡されたかどうかを調べるために使用します

TypeName
変数に関する情報を提供する文字列型の文字列を返します

日付時刻

日付時刻は、そのほとんどは英単語そのものです。
日付関数と時刻関数は、日付と時刻の違いだけで同様機能となっています。
従って、覚えると言っても数は実質半分です。

Date
現在のシステムの日付を含むバリアント型の値を返します

Now
コンピュータのシステムの日付と時刻の設定に基づいて、現在の日付と時刻を表すバリアント型の値を返します

DateAdd
指定された時間間隔を加算した日付をバリアント型の値で返します


DateDiff
2つの指定した日付の時間間隔を表すバリアント型の値を指定します

DateSerial
引数に指定した年、月、日に対応するバリアント型の値を返す関数です

DateValue
日付を表すバリアント型の値を返します

TimeSerial
引数で指定した時、分、および秒に対応する時刻を含むバリアント型の値を返します

TimeValue
時刻を表すバリアント型の値を返します

Weekday
何曜日であるかを表す整数を表すバリアント型の値を返します


Year
年を表すバリアント型の値を返します

Month
1年の何月かを表す0〜12の範囲の整数を表すバリアント型の値を返します

Day
月の何日かを表す1〜31の範囲の整数を表すバリアント型の値を返します


Hour
1日の時刻を表す0〜23の範囲の整数を表すバリアント型の値を返します

Minute
時刻の分を表す0〜59の範囲の整数を表すバリアント型の値を返します

Second
時間の秒を表す0〜59の範囲の整数を表すバリアント型の値を返します

配列

配列関数については、後の章で取り上げていますので、
そこで、実際の使い方を学習してください。

Array
配列が格納されたバリアント型(Variant)の値を返します

LBound
配列の指定された次元で使用できる最小の添字を、長整数型の値で返します

UBound
配列の指定された次元で使用できる添字の最大値を、長整数型の値で返します

Split
各要素ごとに区切られた文字列から1次元配列を作成し、返します

ファイル操作

ファイル操作の関数については、後の章で取り上げていますので、
そこで、実際の使い方を学習してください。
DirとEOF以外は、試験に出る可能性は低いと思います。

Dir
指定したパターンやファイル属性と一致するファイルまたはフォルダの名前を表す文字列型の値を返します。ドライブのボリュームラベルも取得できます

EOF
ランダムアクセスモードまたはシーケンシャル入力モードで開いたファイルの現在位置がファイルの末尾に達している場合、ブール型の値の真(True)を含む整数型の値を返します

FileDateTime
指定したファイルの作成日時または最後に修正した日時を示すバリアント型の値を返します

FileLen
ファイルのサイズをバイト単位で表す長整数型の値を返します

FreeFile
使用可能なファイル番号を整数型の値で返すファイル入出力関数です

GetAttr
ファイルまたはフォルダの属性を表す整数型の整数を返します

数学/財務

試験対策というより、VBAをやっていくうえで一応は知っておくべき関数です。

Abs
引き渡した数値の絶対値を同じデータ型で返します

Fix
指定した数値の整数部分を返します

Int
指定した数値の整数部分を返します

Rnd
単精度浮動小数点数型の乱数を返します

Round
指定された小数点位置で丸めた数値を返します

その他

特殊な関数になります。
DoEvents、RGB、Shell、これらは試験には出ないと思いますが、実務では必須です。

CreateObject
ActiveXオブジェクトへの参照を作成して、返します

DoEvents
発生したイベントがオペレーティングシステムによって処理されるように、プログラムで占有していた制御をオペレーティングシステムに渡すフロー制御関数です

InputBox
InputBox関数は、ダイアログボックスにメッセージとテキストボックスを表示し、文字列が入力されるか、またはボタンがクリックされると、テキストボックスの内容を返します。InputBox関数 InputBox(prompt[,title][,default][,xpo,Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
文字列型の値を返します。ダイアログボックスにメッセージとテキストボックスを表示し、文字列が入力されるか、またはボタンがクリックされると、テキストボックスの内容を返します

MsgBox
MsgBox関数は、ダイアログボックスにメッセージを表示し、ボタンがクリックされるのを待って、どのボタンがクリックされたのかを示す値を返します。MsgBox関数 MsgBox(prompt[,buttons][,title][,helpfile, context]) ,Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
整数型の値を返します。ダイアログボックスにメッセージを表示し、ボタンがクリックされるのを待って、どのボタンがクリックされたのかを示す値を返します

RGB
色のRGB値を表す長整数型の値を返します

Shell
Shell関数は、実行可能プログラムを実行し、実行が完了するとプログラムのタスクIDを示すバリアント型の値を返します、プログラムの実行に問題が発生した場合は、0を返します。Shell関数 Shell(pathname[,windowstyle]) pathname 必,Excelマクロで必須のVBA関数を入門・初級・初心者向けに詳細解説
実行可能プログラムを実行し、実行が完了するとプログラムのタスクIDを示すバリアント型の値を返します。プログラムの実行に問題が発生した場合は、0を返します


【業務改善の実務】

実務としては、関数の使い方を覚えるというより、どんな関数があるかを知っておくことが重要です。

何かをするときに、関数の存在さえ知っていれば、関数の使い方等の詳細は、その時点で調べれば良い事です。
逆に、関数の存在を知らないと、解決方法を見つけられず調べることも出来なくなってしまいます。

一通りどのような関数があるかを見て下さい。
ただし、日付、文字列、このあたりの使用頻度が高い関数は、いちいち調べなくても使えるようにしておきましょう。


【本サイト内の関連ページ】

VBA関数の一覧
ExcelマクロVBA関数の一覧と解説です、どんな関数があるかは一度は確認しておくとをお勧めいたします。どんな関数があるだけでも知っておけば、詳細の使い方は実際に使うときに調べても良いでしょう。エクセルの各種一覧、Excelリファレンス

ExcelマクロVBA

第44回.VBA関数について
ワークシートに関数があるように、マクロにも専用の関数が用意されています、このマクロ専用の関数をVBA関数と呼んだりします。また、マクロでは、VBA関数だけでなく、ワークシート関数も使えますが、それは、WorkSheetFunctionクラスを使うもので、これについては,Excelマクロの基礎と応用
第45回.VBA関数(Format)
VBAのFormat関数は、指定した書式に変換した文字列を返す関数で、ワークシートのTEXT関数と同様の機能になります。VBAのFormat関数は、非常に使用頻度の高い関数であり、マクロVBAにおいては必須習得関数です。Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説
第46回.VBA関数(日付,DateAdd)
データ型の中でも、日付時刻はかなり特殊であり、関数の使用は必要不可欠になります。ここでは、日付に関するVBA関数の一覧と、DateAdd関数について解説します。Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説
第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
文字列操作は、プログラミングする上で必須です、データ整形、データクレンジング、データクリーニング、これらを行うVBAにおいて不可欠なものが、文字列操作関数です。ここでは、文字列操作に関するVBA関数の一覧と Replace関数、InStr関数、StrConv関数について,Excelマクロの基礎と応用
第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)
日付関数、文字列操作関数以外で、マクロにてぜひ押さえておいてほしい関数の一覧です。一覧と、その中から一部解説しておきます。Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説

第113回.配列に関連する
配列を使う上で、必要となるVBA関数がいくつかあります、より便利に配列を活用するために必須となるVBA関数について解説します。LBound関数 配列の指定された次元で使用できる最小の添字を、長整数型(Long)の値で返します。Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説





同じテーマ「VBAエキスパート対策」の記事

プロシージャ
イベント
ステートメント(スタンダード)
関数
エラーへの対処
APIとOLEオートメーション
変数と配列
レジストリの操作
ファイルの操作
ユーザーフォームとメニューの操作
VBAスタンダード試験対策まとめ

新着記事NEW ・・・新着記事一覧を見る

Excelワークシート関数一覧(2010以降)|VBAリファレンス(4月22日)
クラスとCallByNameとポリモーフィズム(多態性)|VBA技術解説(4月6日)
VBAでのタイマー処理(SetTimer,OnTime)|VBA技術解説(4月3日)
クラスとイベントとマルチプロセス並列処理|VBA技術解説(4月2日)
エクセルの日付と時刻のまとめ|エクセル関数超技(3月6日)
Excelシートの複雑な計算式を解析するVBA|VBAサンプル集(2月18日)
VBAクラスの作り方:独自Rangeっぽいものを作ってみた|VBA技術解説(2月16日)
VBAクラスの作り方:列名のプロパティを自動作成する|VBA技術解説(2月14日)
VBAクラスの作り方:列名の入力支援と列移動対応|VBA技術解説(2月11日)
クラスを使って他ブックのイベントを補足する|VBA技術解説(2月6日)

アクセスランキング ・・・ ランキング一覧を見る

1.ひらがな⇔カタカナの変換|エクセル基本操作
2.最終行の取得(End,Rows.Count)|VBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.RangeとCellsの使い方|ExcelマクロVBA入門
6.変数とデータ型(Dim)|ExcelマクロVBA入門
7.マクロって何?VBAって何?|ExcelマクロVBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.とにかく書いて見よう(Sub,End Sub)|VBA入門
10.セルに文字を入れるとは(Range,Value)|VBA入門



  • >
  • >
  • >
  • 関数

    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。






    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ