MENU

【初心者向け】なぜFunctionを使うの?VBAでFunctionを活用する5つのメリット

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

A子さん

SubとFunctionってどう違うの?
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文の使い方と注意点
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次