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ステートメント

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

画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)
表示の固定|Google Apps Script入門(12月24日)
グラフ|Google Apps Script入門(12月21日)
入力規則|Google Apps Script入門(12月13日)
並べ替え|Google Apps Script入門(12月12日)
メモの挿入・削除と改行文字|Google Apps Script入門(12月6日)
リンクの挿入・編集・削除|Google Apps Script入門(12月6日)
セルに数式を入れる|Google Apps Script入門(12月1日)
セルのコピー&各種ペースト|Google Apps Script入門(11月22日)

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

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



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

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


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

    ↑ PAGE TOP