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技術解説」の記事

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

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

エクセルの日付と時刻のまとめ|エクセル関数超技(3月6日)
Excelシートの複雑な計算式を解析するVBA|VBAサンプル集(2月18日)
VBAクラスの作り方:独自Rangeっぽいものを作ってみた|VBA技術解説(2月16日)
VBAクラスの作り方:列名のプロパティを自動作成する|VBA技術解説(2月14日)
VBAクラスの作り方:列名の入力支援と列移動対応|VBA技術解説(2月11日)
クラスを使って他ブックのイベントを補足する|VBA技術解説(2月6日)
Excelアドインの作成と登録について|VBA技術解説(2月3日)
参照設定、CreateObject、オブジェクト式の一覧|VBA技術解説(1月20日)
VBAでファイルを規定のアプリで開く方法|VBA技術解説(1月20日)
ドキュメントプロパティ(BuiltinDocumentProperties,CustomDocumentProperties)|VBA技術解説(1月19日)

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

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.RangeとCellsの使い方|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.変数とデータ型(Dim)|ExcelマクロVBA入門
6.マクロって何?VBAって何?|ExcelマクロVBA入門
7.とにかく書いて見よう(Sub,End Sub)|VBA入門
8.繰り返し処理(For Next)|ExcelマクロVBA入門
9.セルに文字を入れるとは(Range,Value)|VBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作



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

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


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






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

    本文下部へ