ExcelマクロVBA技術解説 | ユーザー定義関数の作り方 | ExcelマクロVBAの問題点と解決策、エクセルVBAの技術的解説



最終更新日:2013-06-11

ユーザー定義関数の作り方


マクロを作成して、ボタンで一括処理・・・それほどではないが、関数だけではちょっと大変、

そんな時は、ユーザー定義関数を使ってみましょう。

作り方は簡単です。


Function UserFunc(a As Variant, b As Variant) As Variant

  UserFunc = a + b
End Function


上記は、引数を足し算して返すユーザー定義関数です。

Function UserFunc

Function

これは決まり文句です。

UserFunc

これが関数の名前になります、好きな名前を付けられます。

日本語もOK。

ただし、エクセルの組み込み関数と同じ名前はダメですよ。

この関数が返す値の型を

as Variant


で定義します。

最初はとりあえず、Variantで良いです。

(a As Variant, b As Variant)

引数になります。

必要な個数だけ定義します。

型指定は内容に応じてと言う事になりますが、ほとんどの場合、セル参照になると思いますので、

型は省略(Variant)して良いでしょう。

UserFunc = a + b

関数の名前に、値を入れる事で、この関数の戻り値となります。

この部分に、必要な処理を記述します。

もちろん、全てのVBAのコードが使用可能です。


この関数の使い方

他の組み込み関数と同じです。

セルに、

=UserFunc(セル参照, セル参照)

これで使えます。

また、関数の挿入(Shift + F3)では、

「関数の分類」「ユーザー定義」に追加されます。

ここから選択することも可能です。

そして、当然、数式パレット(引数入力用のダイアログ画面)も表示されます。

IF文のネストが多くなり、もう何が何だか分からなくなってしまった等の時は、

このユーザー定義関数を作ると、ずっとすっきりしたエクセルになります。

まだ、使ったことのない人は、ぜひ一度お試しください。




同じテーマ「マクロVBA技術解説」の記事

値渡し、参照渡しについて(ByVal,ByRef)
最終行・最終列の取得方法(End,CurrentRegion,SpecialCells,UsedRange)
セルの値について(Value,Value2,Text)
Excelのバージョンを判断して「名前を付けて保存」
空白セルを正しく判定する方法(IsEmpty,IsError,HasFormula)
空白セルを正しく判定する方法2
Rangeオブジェクト.Valueの省略について
ユーザー操作を制限する(Locked,Protect,ScrollArea)
シートに数式を設定する時のセル参照の指定方法
標準モジュールとシートモジュールの違い

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

複数条件判定を行う時のコツ|ExcelマクロVBA技術解説(7月11日)
For Next の使い方いろいろ|VBA技術解説(6月14日)
VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)
ファイルの操作|MOS VBAエキスパート対策(3月14日)
ユーザーフォームの各種イベント|Excelユーザーフォーム(3月13日)
レジストリの操作|MOS VBAエキスパート対策(3月12日)
変数と配列|MOS VBAエキスパート対策(3月12日)
Colorプロパティの設定値一覧|VBA技術解説(3月12日)

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

1.最終行の取得(End,Rows.Count)|VBA入門
2.変数とデータ型(Dim)|ExcelマクロVBA入門
3.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.マクロって何?VBAって何?|ExcelマクロVBA入門
6.RangeとCellsの使い方|ExcelマクロVBA入門
7.とにかく書いて見よう(Sub,End Sub)|VBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.定数と型宣言文字(Const)|ExcelマクロVBA入門
10.マクロはどこに書くの(VBEの起動)|VBA入門



  • >
  • >
  • >
  • ユーザー定義関数の作り方

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


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





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

    本文下部へ

    ↑ PAGE TOP