ExcelマクロVBA入門 | 第44回.VBA関数について | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2013-04-27

第44回.VBA関数について


ワークシートに関数があるように、マクロにも専用の関数があります。


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


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


それは、後々に説明いたします。



・関数の書き方


変数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関数には、ワークシート関数と(ほぼ)同一名称の関数も多くあります。


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


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



・自動メンバ表示


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


これを活用して下さい。


関数名を入力すると、



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


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





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




・習得すべき関数


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


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


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


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


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


必ず習得して下さい。



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


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


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


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


VBA関数一覧

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





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

第45回.VBA関数(Format)
第46回.VBA関数(日付,DateAdd)
第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)
第49回.Like演算子とワイルドカード
第50回.総合練習問題6
第51回.Withステートメント

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

空白セルを正しく判定する方法2|ExcelマクロVBA技術解説(5月6日)
フルパスをディレクトリ、ファイル名、拡張子に分ける|ExcelマクロVBA技術解説(4月15日)
テキストボックスの各種イベント|Excelユーザーフォーム入門(4月9日)
フォルダ(サブフォルダも全て)削除する、Optionでファイルのみ削除|ExcelマクロVBAサンプル集(4月4日)
最後の空白(や指定文字)以降の文字を取り出す|エクセル関数超技(3月26日)
先頭の数値、最後の数値を取り出す|エクセル関数超技(3月26日)
Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)

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

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.ひらがな⇔カタカナの変換|エクセル基本操作
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
6.変数とデータ型(Dim)|ExcelマクロVBA入門
7.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
8.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.定数と型宣言文字(Const)|ExcelマクロVBA入門



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

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


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




    ↑ PAGE TOP