大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで使う「Sub」と「Function」の違いについて、解説します。「Function」は「戻り値」が使えて、「関数」として使えるのが「Sub」との違いです。戻り値や関数として使いたいというのがなければ、「Sub」を使っていきましょう。

はじめに

この記事では、「Sub」と「Function」の違いについて、ご紹介します。

「Sub」と「Function」の違いは、次のとおりです。

  • 戻り値があるか:Sub(×)、Function(〇)
  • 参照できるか:Sub(〇)、Function(×)
  • 関数として使えるか:Sub(×)、Function(〇)

「戻り値」がほしい場合や、「関数」として使いたい場合は、「Function」を使いましょう。

反対に、「戻り値」が必要なくて、「関数」としても使わない場合は、「Sub」です。

では、「Sub」と「Function」の違いについて、解説していきます。

この記事で紹介すること

  • 「Sub」と「Function」の違い

目次から見たい項目へ移動すると便利ですよ。

目次

SubとFunctionの違い

SubとFunctionの違いについて、解説します。

違いまとめ

SubとFunctionについて、違いは次のとおりです。

  • 戻り値があるか:Sub(×)、Function(〇)
  • 参照できるか:Sub(〇)、Function(×)
  • 関数として使えるか:Sub(×)、Function(〇)

ここで、〇は機能ありで、×は機能なしの意味です。

それぞれについて、解説していきます。

戻り値があるかないか

「Sub」は値を渡すだけで、「Function」で戻り値があります。

「Sub」は値を渡すだけ

「Sub」は値を渡すだけです。

Sub TEST1()
    Call TEST2(1)
End Sub

Sub TEST2(a)
    a = a + 1
    MsgBox a
End Sub

こんな感じです。

「Sub」は値を渡すだけです

実行してみます。

値を渡せました

値を渡せました。

「Function」は戻り値がある

「Function」は戻り値があります。

Sub TEST1()
    a = TEST2(1)
    MsgBox a
End Sub

Function TEST2(a)
    TEST2 = a + 1
End Function

こんな感じです。

「Function」は戻り値があります

実行してみます。

戻り値を取得できました

戻り値を取得できました。

参照が可能か

「Sub」はボタンに登録が可能で、「Function」は登録ができません。

「Sub」と「Function」のコードを作成

「Sub」と「Function」のコードを作成します。

Sub TEST1()
    MsgBox "A"    
End Sub

Function TEST2()
    MsgBox "A"
End Function

次のように2つ作成してみます。

「Sub」と「Function」のコードを作成しました

図形にマクロの登録をしてみます。

参照してみる

図形にマクロの登録をしてみます

「Sub」のコードはありますけど、「Function」のコードはありません

「Function」のコードはない

「Sub」のコードはありますけど、「Function」のコードはありません

こんな感じで、「Sub」はボタンから参照ができて、「Function」はできません。

関数として使えるか

「Function」はワークシート関数として使えて、「Sub」は使えません。

Functionで関数を作成

1を足すだけの「Func_TEST」という関数を作成します。

Function Func_TEST(a)
    Func_TEST = a + 1
End Function

こんな感じです。

1を足すだけの「Func_TEST」という関数を作成しました

ワークシートに入力すると関数の候補もでてきます。

ワークシートで使ってみる

ワークシートに入力すると関数の候補もでてきます

Functionで作成した関数をワークシート関数として使用することができます。

ワークシート関数として使えた

Functionで作成した関数をワークシート関数として使用することができました

こんな感じで、「Function」で作成した関数を、ワークシート関数として使用することができました。

SubとFunctionの使い分け

SubとFunctionの使い分けです。

戻り値がほしい、関数として使いたい場合はFunction

「Function」を使う場合と、「Sub」を使う場合です。

「Function」を使う場合

戻り値を使いたい場合や、ワークシート関数として使いたい場合は、「Function」を使うことになります。

「Sub」を使う場合

反対に、戻り値やワークシート関数として、使う必要がなければ、「Sub」です。

という感じで、使い分けていきましょう。

おわりに

この記事では、「Sub」と「Function」の違いについて、ご紹介しました。

「Sub」と「Function」の違いは、次のとおりです。

  • 戻り値があるか:Sub(×)、Function(〇)
  • 参照できるか:Sub(〇)、Function(×)
  • 関数として使えるか:Sub(×)、Function(〇)

「戻り値」がほしい場合や、「関数」として使いたい場合は、「Function」を使いましょう。

反対に、「戻り値」が必要なくて、「関数」としても使わない場合は、「Sub」です。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す