特殊な計算をよく使うが、そのつど関数や数式を組み合わせて計算するは面倒─。もしそう思うことがあるなら、自分独自の関数を作ってみてはどうだろう。マクロを使うと、オリジナルの関数を簡単に作ることができるのだ。こうしておくと、複雑な計算も、すぐに呼び出して利用できる。
ここでは、セルに入力されている日付から起算して、「2カ月後の末日」を計算するオリジナル関数「月末日」を作成する(図1)。
関数の書き方は注意が必要、3カ月後の1日の前日を計算
入力するマクロのコードは図2の通り。通常のマクロとはコードが異なるが、作成方法は同じだ。VBE画面を開き、過去に作成したマクロの下に、コードを入力すればよい。
オリジナル関数の書き方のポイントは3つ。まずオリジナル関数は、「Sub」ではなく、「Function」で始まる。これに続けて関数名を入力したら、第2のポイント「引数」だ。計算に必要な引数を、カッコの中で指定する。ここでは、変数「起算日」を引数として受け取るので、「起算日 AsRange」と記載する[注]。
最後のポイントが、計算結果。関数は、必ず計算結果がセルに表示される。そのためには、マクロの中で、「関数名に計算結果を代入する」という式を入れる必要がある(図3)。
[注]ここでは、データ形式にセルそのものを表す「Range」型を指定した