ExcelマクロVBA入門
第44回.VBA関数について

Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説
最終更新日:2018-01-24

第44回.VBA関数について


ワークシートに関数があるように、マクロにも専用の関数が用意されています、


このマクロ専用の関数をVBA関数と呼んだりします。

また、マクロでは、VBA関数だけでなく、ワークシート関数も使えますが、

それは、WorkSheetFunctionクラスを使うもので、これについては後々に説明いたします。



関数の書き方

変数orセル = 関数名(第1引数, 第2引数, 第3引数, ・・・)

このように、関数は、その戻り値を他の変数やセルに入れて使います。

または、

If 関数名(第1引数, 第2引数, 第3引数, ・・・) = ○○○ Then

このように、関数の戻り値を、If文等で判定します。

または、

変数orセル = 関数名(関数名(第1引数, 第2引数, 第3引数, ・・・), 第2引数, 第3引数, ・・・)

このように、関数をネストして使う事も出来ます。

関数の戻り値を、別の関数の引数として指定しています。

関数は、通常は上記のように、その戻り値を使って次の処理に進みます。



関数の戻り値を使わない場合

MsgBox "メッセージ"

このように、戻り値を使用しない事も、まれにあります。

この時の記述方法として、

関数名 第1引数, 第2引数, 第3引数, ・・・

このように、戻り値を使用しない場合は、引数を()で囲まずに記述します。

関数は、ほとんどの場合は戻り値を使うので、通常は、

変数 = 関数名(第1引数, 第2引数, 第3引数, ・・・)

このように、()で引数を囲いますので、戻り値を使わない場合の記述については要注意です。



名前付き引数

関数の引数は、名前付き引数が利用できますが、

慣習的に、VBA関数においては、名前付き引数を使う事はあまりありません

引数自体の数が、そんなに多くないので、記述を簡略化する事が多いからでしょう。

オブジェクトのメソッドの場合は引数が多いものがあるので、名前付き引数を使うようにします。



○○○B関数

文字列をバイト データとして扱う場合の関数です。

AscB、ChrB、LeftB、LenB、RightB

になりますが、あまり使用する事は無いでしょう。




○○○$関数

文字列型 (String) の値を返します。

これらの関数は、ドル記号を付けずに使用すると、バリアント型 (Variant) の値を返します。

Chr$、ChrB$、Command$、CurDir$、Date$、Dir$、Error$、Format$、Hex$、Input$、InputB$、LCase$、Left$、LeftB$、LTrim$、Mid$、MidB$、Oct$、Right$ RightB$ RTrim$、Space$、Str$、String$、Time$、Trim$、UCase$

と多くありますが、とりあえず覚える必要はないでしょう。



ワークシート関数との関係

VBA関数には、ワークシート関数と(ほぼ)同一名称の関数も多くあります。

しかし、その引数においては、同一とは限らないので、多少の注意は必要です。

この点については、次回以降で説明します。

また、前述したように、WorkSheetFunctionを使う事でワークシート関数も使用できますが、それは後々。



自動メンバ表示

VBEにおいては、引数が自動的に表示(自動メンバ表示)されますので、

これを活用して下さい。

関数名を入力すると、

マクロVBA サンプル画像

このように、引数が表示されます。

そして、引数が、決められた内容の場合は、そのメンバが自動表示されます。

マクロVBA サンプル画像


上下矢印キーで選択し、TABキーで決定して下さい。



習得すべき関数

VBA関数は、全部で140以上あり(ワークシート関数は400以上ありますが)、

全てを覚えるのは大変ですし、その必要もないでしょう。

統計・財務・数学等の関数は、人それぞれで必要な関数を使えるようになれば良いと思います。

しかし、マクロを書く上で、どうしても覚える必要のある関数もあります。

日付や文字列操作の関数は、どのような業務においても必須となりますので、

必ず習得して下さい。



関数なら、1行で済む事を、延々とマクロを書くような事は愚かしい事です。

また、関数を知を使わなくては実現困難な処理も多数あります。

少なくとも、どのような関数があるかだけは押さえておいて下さい。

具体的な引数まで知らずとも、関数の存在だけでも知っていれば、

必要な時に、ヘルプを見ながらマクロを書いても問題は無いはずです。

VBA関数一覧
VBA関数の一覧と解説ですどんな関数があるかは一度は確認しておくとをお勧めいたします。どんな関数があるだけでも知っておけば詳細の使い方は実際に使うときに調べても良いでしょう。文字列操作・・・34 型変換・・・12 データ判定・・・11 日付時刻・・・20 配列・・・7 ファイル操作・・・14 数学/財務・・・28 その他・・・19MicrosoftDoc…

一度は、どんな関数があるか一通り目を通しておくと良いでしょう。




同じテーマ「マクロVBA入門」の記事

セルのコピー&値の貼り付け(PasteSpecial)
セルをコピーするとは
総合練習問題5
VBA関数について
VBA関数(Format)
VBA関数(日付,DateAdd)
VBA関数(文字列操作,Replace,InStr,StrConv)
VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)
Like演算子とワイルドカード
総合練習問題6
Withステートメント

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

Withステートメントの実行速度と注意点|VBA技術解説(6月6日)
VBA+SeleniumBasicで検索順位チェッカー(改)|VBA技術解説(6月2日)
マクロでShift_JIS文字コードか判定する|VBA技術解説(6月1日)
Shift_JISのテキストファイルをUTF-8に一括変換|VBAサンプル集(5月31日)
「VBAによる解析シリーズその2 カッコ」をやってみた|エクセル(5月21日)
VBA+SeleniumBasicで検索順位チェッカー作成|VBA技術解説(5月18日)
テーブル操作のVBAコード(ListObject)|VBA入門(5月12日)
テーブル操作の概要(ListObject)|VBA入門(5月12日)
VBAのスクレイピングを簡単楽にしてくれるSelenium|VBA技術解説(5月6日)
Excelワークシート関数一覧(2010以降)|VBAリファレンス(4月22日)

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

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.ひらがな⇔カタカナの変換|エクセル基本操作
7.繰り返し処理(For Next)|ExcelマクロVBA入門
8.マクロって何?VBAって何?|ExcelマクロVBA入門
9.空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)|VBA技術解説
10.ExcelマクロVBAの基礎を学習する方法|エクセルの神髄



  • >
  • >
  • >
  • VBA関数について

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


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






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

    本文下部へ