カテゴリ: VB.NET 更新日: 2025/12/08

VB.NETのFunctionとSubの違いをわかりやすく解説!初心者向けガイド

VB.NETの関数(Function)と手続き(Sub)の違い
VB.NETの関数(Function)と手続き(Sub)の違い

先生と生徒の会話形式で理解しよう

生徒

「先生、VB.NETでメソッドを作るときにFunctionとSubのどちらを使えばいいんですか?」

先生

「FunctionとSubはどちらもメソッドですが、使い方が少し違います。簡単に言うと、Functionは値を返すメソッド、Subは値を返さないメソッドです。」

生徒

「値を返すってどういうことですか?」

先生

「例えば、計算した結果を戻して他の場所で使いたいときはFunctionを使います。一方で、画面にメッセージを表示するだけの処理ならSubで十分です。」

1. Subとは?値を返さない手続き

1. Subとは?値を返さない手続き
1. Subとは?値を返さない手続き

VB.NETのSubは「サブルーチン」の略で、処理をまとめた手続きです。Subは値を返さないため、主に処理を実行するだけのメソッドとして使います。


Sub ShowMessage()
    Console.WriteLine("こんにちは、VB.NETの世界へ!")
End Sub

'呼び出し
ShowMessage()

こんにちは、VB.NETの世界へ!

この例ではShowMessageを呼び出すと、メッセージが表示されます。Subは結果を返さず、呼び出すだけで処理が完了します。

2. Functionとは?値を返すメソッド

2. Functionとは?値を返すメソッド
2. Functionとは?値を返すメソッド

一方、Functionは処理を実行した結果を戻すことができるメソッドです。値を返すので、計算結果や文字列を呼び出し元で利用できます。


Function AddNumbers(a As Integer, b As Integer) As Integer
    Return a + b
End Function

Dim result As Integer
result = AddNumbers(5, 7)
Console.WriteLine(result)

12

この例ではAddNumbersというFunctionが5と7を足し、その結果をresultに戻しています。Functionを使うと、他の計算や処理に結果を活用できます。

3. SubとFunctionの違いを簡単に覚える方法

3. SubとFunctionの違いを簡単に覚える方法
3. SubとFunctionの違いを簡単に覚える方法

覚えやすい例えとして、Subは「ボタンを押すだけで動く機械」、Functionは「計算機で答えを出す機械」と考えるとわかりやすいです。

  • Sub: 値を返さない。呼ぶと処理を実行するだけ。
  • Function: 値を返す。呼ぶと処理後の結果を受け取れる。

Subは主に「表示」「ログ記録」「ファイル保存」などの処理で使われ、Functionは「計算結果を使う」「データを返す」処理に使われます。

4. 引数と戻り値の活用

4. 引数と戻り値の活用
4. 引数と戻り値の活用

SubとFunctionはどちらも引数を受け取れます。引数とはメソッドに渡す入力データのことです。


Sub Greet(name As String)
    Console.WriteLine("こんにちは、" & name & "さん!")
End Sub

Function Multiply(x As Integer, y As Integer) As Integer
    Return x * y
End Function

Greet("太郎")
Dim result As Integer = Multiply(3, 4)
Console.WriteLine(result)

こんにちは、太郎さん!
12

Subは引数を受け取って処理を変えることができ、Functionは引数に基づいて計算結果を返すことができます。

5. SubとFunctionを使い分けるポイント

5. SubとFunctionを使い分けるポイント
5. SubとFunctionを使い分けるポイント

プログラムを効率よく書くために、SubとFunctionを使い分けることが重要です。

  • 処理の結果を他で使わない場合はSubを使う
  • 計算結果やデータを返したい場合はFunctionを使う
  • 共通処理はSubでまとめ、計算や結果取得はFunctionでまとめると整理しやすい

これを理解すると、プログラムが読みやすくなり、再利用性も高まります。SubとFunctionの違いをしっかり覚えることで、VB.NETのメソッド活用がスムーズになります。

まとめ

まとめ
まとめ

本記事では、VB.NETのSubとFunctionの違いと使い方を詳しく解説しました。Subは値を返さず処理を実行するだけの手続きで、主に表示やログ、ファイル操作などの処理に適しています。一方、Functionは計算結果やデータを返すことができるメソッドで、戻り値を他の処理に利用したい場合に使います。どちらも引数を受け取ることができ、処理内容を柔軟に変更可能です。初心者が迷いやすいポイントは、値を返すか返さないかの違いを理解することです。

プログラムを効率的に書くためには、SubとFunctionを適切に使い分けることが重要です。処理の結果を利用しない場合はSub、計算結果やデータを戻す場合はFunctionを使います。また、共通処理や繰り返し使う処理はSubでまとめ、計算や値の返却が必要な処理はFunctionで作成すると、コードが整理され保守性が高くなります。さらに、引数を活用することで同じメソッドでも異なる入力に対応でき、プログラムの再利用性を高めることができます。

サンプルプログラムで振り返り


' Subの例: 値を返さず処理を実行
Sub ShowMessage(name As String)
    Console.WriteLine("こんにちは、" & name & "さん!")
End Sub

' Functionの例: 値を返す
Function Add(a As Integer, b As Integer) As Integer
    Return a + b
End Function

' 呼び出し
ShowMessage("太郎")
Dim result As Integer = Add(5, 7)
Console.WriteLine("計算結果: " & result)

こんにちは、太郎さん!
計算結果: 12

このサンプルから、Subはメッセージを表示するだけで値を返さず、Functionは計算結果を戻して他の処理で利用できることがわかります。引数を使うことで処理内容を柔軟に変更できる点もポイントです。

先生と生徒の振り返り会話

生徒

「SubとFunctionの違いは、値を返すか返さないかなんですね。」

先生

「その通りです。Subは処理を実行するだけで、Functionは処理後に値を返すので計算結果やデータを他で使えます。」

生徒

「引数を使えば同じSubやFunctionでもいろいろな処理ができるんですね。」

先生

「正解です。引数を活用すると、より汎用的で再利用性の高いメソッドを作ることができます。」

生徒

「使い分けを覚えると、プログラムが整理されて書きやすくなりますね。」

先生

「その通りです。SubとFunctionの基本を理解して、適切に使い分けることでVB.NETのメソッド活用がぐっとスムーズになります。」

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET WebFormsのGridViewでデータ表示を完全マスター!初心者向けガイド
New2
VB.NET
VB.NETの例外処理とパフォーマンスの関係を初心者向けに完全解説
New3
ASP.NET
ASP.NET WebFormsでデータベースと連携!初心者でもできる保存と表示の基本
New4
VB.NET
VB.NETでStackTraceを利用してエラー箇所を特定する方法を完全解説!初心者向け例外処理入門
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのEnum(列挙型)の使い方を完全解説!初心者にも分かる定義と活用方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETのIf文の使い方と条件分岐を完全ガイド!初心者でもわかる基本構文と実例
No.3
Java&Spring記事人気No3
VB.NET
VB.NETのBoolean型(True/False)の使い方と条件分岐での活用方法を徹底解説!初心者でも理解できる基本
No.4
Java&Spring記事人気No4
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.5
Java&Spring記事人気No5
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.6
Java&Spring記事人気No6
VB.NET
VB.NETの例外処理を完全ガイド!初心者でもわかるSystem.Exceptionの仕組み
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介