この記事で解決できる3つの疑問

Functionを使うと何が良いの?
初心者が実務で使うメリットって?
結論:再利用性・保守性・見通しの良さの面でFunctionは圧倒的に有利!
Functionは「値を返す」ための構文ですが、実はその役割以上に、コードを整理しやすく、再利用もしやすいという多くのメリットを持っています。
「使わないのはもったいない」と言っても過言ではありません。
Functionとは?あらためておさらい
Functionは「引数を受け取り、処理をして、値を返す」ための構文です。
Function 足し算(数1 As Integer, 数2 As Integer) As Integer 足し算 = 数1 + 数2 End Function
このFunctionは、セルでもマクロ内でも使えます。
ポイントは「呼び出すと結果を返してくれる」こと。
Functionを使う5つのメリット
① 値を返せる → 再利用しやすい
同じ計算を何度も使いたい場合、Functionなら一度書いて何度でも使えるため、コードの重複が激減します。
② 処理を分離できる → コードが読みやすくなる
複雑な処理を1つのSubに押し込むと、見通しが悪くなります。
Functionで「部品化」すれば、メイン処理がスッキリします。
③ テストがしやすい → バグを早く見つけられる
Functionは戻り値を確認するだけで動作確認ができます。
「この条件ならこうなるはず」といった単体テストに向いています。
④ Excelのワークシート関数としても使える
Functionは、Publicに定義すればセル上で使えるようになります。
Function 残業代(時給 As Double, 時間 As Double) As Double 残業代 = 時給 * 時間 * 1.25 End Function
Excelの関数として =残業代(1200, 10)
と書くだけで計算できます。
⑤ 複数のSubで使い回せる → メンテが簡単
関数を共通部品化することで、他の処理からも同じロジックを呼び出すことができます。
ルールが変わっても1ヶ所修正すれば済むのは大きなメリットです。
3. 実務で役立つFunctionの具体例
例1:日付から営業日かどうかを判定する
Function 営業日判定(日付 As Date) As Boolean If Weekday(日付, vbMonday) <= 5 Then 営業日判定 = True Else 営業日判定 = False End If End Function
他のマクロやセル関数で使えば「営業日かどうか」を簡単に判定可能。
例2:文字列の末尾をチェック
Function 末尾がAかB(文字列 As String) As Boolean Dim 最後 As String 最後 = Right(文字列, 1) 末尾がAかB = (最後 = "A" Or 最後 = "B") End Function
データ入力のチェックや分岐処理の簡略化に役立ちます。
初心者でも安全に使えるFunctionテンプレ
Functionを書くときは、以下のテンプレを覚えておけば安心です:
Function 関数名(引数 As 型, …) As 戻り値の型 ' 処理 関数名 = 結果 End Function
例:
Function 割増計算(基本 As Double) As Double 割増計算 = 基本 * 1.25 End Function
※ 関数名と戻り値の格納名は同じにする必要があります。
よくある疑問Q&A
Q:Functionの中でMsgBoxを使ってもいいの?
A:可能ですが、関数は純粋に「値を返す」役割に徹する方がベストです。メッセージ表示などはSubに任せましょう。
Q:引数なしでもFunctionは作れる?
A:はい、できます。ただし、その場合は内部だけで計算処理する形になります。
まとめ:Subだけで満足していたらもったいない!
Functionを使うことで、処理の整理・再利用・保守が格段に楽になります。
- 結果を返したい → Function
- 複数の場所で使いたい処理 → Function
- Subと組み合わせて処理を分担 → 効率化UP!
最初は難しく見えるかもしれませんが、慣れればコードの「見える化」と「使い回し」に強力な武器になります。
関連記事リンク
- 【初心者向け】SubとFunctionの違いとは?
- 【初心者向け】変数とは?Dimによる宣言方法を解説
- 【初心者向け】If文の使い方と注意点
コメント