Excel Microsoft VBA

『VBA関数』の使い方【VBA入門講座#4】

サブロー
こんにちは。サブローです。

『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指定した角度の余弦【コサイン】をかえす
CreateObjectActiveXオブジェクトへの参照を作成してかえす
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指定したエラー番号に対応するエラーメッセージをかえす
Expeを底とする数式のべき乗【指数関数】を計算
FileAttrFileOpen関数で開いているファイルのファイルモードをかえす
FileDateTimeファイルの作成日時または最終更新日時をかえす
FileLenファイルのサイズをバイト単位でかえす
Filter文字列の配列から指定した文字列だけを含む配列をかえす
Fix指定した数値の整数部をかえす
Format値を指定した書式で文字列型【String】に変換
FormatCurrencyシステムで定義されている通貨形式に従った文字列をかえす
FormatDateTime指定した日時形式に従った文字列をかえす
FormatNumber指定した数値形式に従った文字列をかえす
FormatPercentパーセント形式に従った文字列をかえす
FreeFileFileOpen関数で使用可能なファイル番号をかえす
FV定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の将来価値をかえす
GetAllSettingsSaveSetting関数で保存したレジストリデータを配列形式でかえす
GetAttrファイルまたはフォルダの属性を示す値をかえす
GetSettingSaveSetting関数で保存したレジストリデータから指定のキー設定値をかえす
Hex指定した数値を16進数の文字列にしてかえす
Hour指定した時刻の時をかえす
IIf式を評価して2つの値の内1つをかえす
IMEStatusIMEの現在の状態をかえす
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開いているファイルの、現在の読み込み位置または書き込み位置をかえす
LOFFileOpen関数で開いているファイルの長さをかえす
Log自然対数をかえす
Ltrim文字列の先頭のスペースを取り除いてかえす
Mid/MidB文字列の指定した位置から文字数分の文字列をかえす
Minute指定した時刻の分をかえす
MIRR定期的な支払いと収益に対して修正内部利益率をかえす
Month指定した日付の月をかえす
MonthName数値で指定した月を表す文字列をかえす
MsgBoxメッセージボックスを表示しその結果をかえす
Now現在の日時をかえす
NPer定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の投資に必要な期間をかえす
NPV定期的なキャッシュフローと割引率に基づいて、投資の正味現在価値をかえす
Oct指定した値を8進数で表した文字列でかえす
Partition指定した値が含まれる範囲を求め、その結果を文字列でかえす
Pmt定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の投資に必要な定期支払額をかえす
PPmt定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の指定した期に支払う元金をかえす
PV定額の支払いを一定期間続けたとき、その期間中の利率が一定だった場合の現在の投資価値をかえす
QBColor指定した色番号に対応するRGBコードを表す数値をかえす
Rate投資期間を通じての利率をかえす
Replace文字列を置換
RGBRGBで示す色の値をかえす
Right/RightB文字列の最後から指定した文字数分の文字列をかえす
Rnd乱数【ランダムな数値】をかえす
Round小数点を偶数丸めした値をかえす
Rtrim文字列の最後のスペースを取り除いてかえす
Second指定した時刻の秒をかえす
Sgn指定した値の符号をかえす
Shell外部プログラムを実行
Sin指定した角度の正弦【サイン】をかえす
SLN定額法による減価償却費をかえす
Space指定した数のスペースをかえす
SpcPrint関数またはPrintLine関数と共に使用し、指定した数のスペースを挿入することで出力の位置を移動
Split区切り文字で区切られた文字列を配列にしてかえす
Sqr指定した数値の平方根をかえす
Str指定した数値を文字列に変換
StrComp文字列を比較
StrConv文字列を大文字や全角、ひらがななどに変換してかえす
String文字を指定した数だけ並べてかえす
StrReverse指定した文字列の並びを逆にした文字列をかえす
Switch式のリストを評価し、リストの中で真【True】となる最初の式に関連付けられた値をかえす
SYD定額逓減法による減価償却費をかえす
TabPrint関数または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


(結果画面)

《前回の復習~入門講座#3~》
使用頻度高! 『変数』とは?【VBA入門講座#3】

サブロー
それでは、今回はここまで。最後までお読みいただきありがとうございました!

2020年2月25日公開



~INDEX一覧~

エクセル関数の勉強 1

サブローエクセル/Excel関数の一覧にしています。本ブログ内で記事にしているものは、講座の列にリンク付けを随時行います(^o^) ※使用頻度のランクに関しては、個人的な主観でランク付けをしています。 ...

2

サブロー危険物取扱者試験 乙4種対策講座の目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 【目次/INDEX】 講座ID分類内容リンク 1共通#1『危険物取扱者試験』の ...

3

サブローQC(品質管理)検定に関する説明が増やして行く予定なのでリンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 モグゾー対象級を記載していますが、あく ...

4

サブローExcel VBAに関する説明を今後増やして行く予定なので、各リンクに飛ぶような目次(INDEX)を作りました。 随時更新していくので、よろしくお願いします。 目次(INDEX) 講座No内容 ...

-Excel, Microsoft, VBA
-,

Copyright© サブログ , 2020 All Rights Reserved Powered by AFFINGER5.