ユーザー定義関数の作り方
3行マクロ 68回
ユーザー定義関数
今回はざくっと簡単に、 すぐに使える「曜日をゲットするユーザー定義関数」や 「月をゲットするユーザー定義関数」を作成します。ユーザー定義関数に慣れるには、理屈は置いておき、 使ってみることです。
(サンプルファイルは、こちらから 3行マクロ19回サンプルデータ)
Functionプロシージャ ユーザー定義関数
function プロシージャの構文の方があるので、最低限は守らなければいけないルールはあります。
そこで function プロシージャ名
End function
これは外せないので、 必ず入れてやります。
End function
これは外せないので、 必ず入れてやります。
サンプルでは1から12まで連続する番号を入力していますが、これを隣に1月2月3月のように表示させたい場合に使う、ユーザー定義関数でを作ります。 まず Function そして関数の名前は、自由につけることができますので「NameOfMonth」と入れてやりました。
引数には ローマ字で tuki といれてやりますこれも自由に 設定することができます。わかりやすい名前をつけてやればいいです。
引数の型を 省略した時はバリアント型と判断されますので、 形が思いつかなければ省略しても大丈夫です。
そしてステートメントのところにはその関数を使うための式を入力します。
そしてステートメントのところにはその関数を使うための式を入力します。
コードは、
Function NameOfMonth(tuki) NameOfMonth = MonthName(tuki) End Function
出来上がったので早速試してみましょう。セルに=と入力し Name Of month 入れてやると、 途中まで入力したところで function のヒントが出てきます。
NameOfMonth が、関数として認められたということになりますね。
NameOfMonth が、関数として認められたということになりますね。
=NameOfMonth(1) としても、 1月と表示されます。
また隣のセルを参照して=NameOfMonth(B3)
のようにしてやっても 月と判断して2月 と表示されます。
曜日を入力するユーザー定義関数
月の名前が取得できるのであれば、曜日の名前なども取得できるはずですね。それでは ユーザー定義関数のコードを記入しましょう。
関数名は、youbiとし、引数はわかりやすく、hidukeとしました。
Function youbi(hiduke) youbi = WeekdayName(Weekday(hiduke)) End Function
それでは シートに関数を入力して 実行してみましょうね。 ここでは引数に直接日付を入力してみます。
=youbi("2019/12/31")
戻り値は火曜日となりました。
=youbi("2019/12/31")
戻り値は火曜日となりました。
日付の入っているセルを参照させて、
=youbi(E5) の ように入力しても その日の曜日を取得することができます。
コードはたった1行ですけれども非常に便利に使うことができます。 堅苦しく考えずに ぜひ一度試してみてください。