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