VBのプロシージャ(Sub)について
Visual Basic(VB)における プロシージャ(Sub) とは、1つの処理のまとまりを定義するための構文です。Subプロシージャは戻り値を返さないメソッドであり、メッセージの表示やファイル出力など、結果を返す必要のない処理に適しています。
Subプロシージャの基本構文
Sub プロシージャ名()
' 処理内容
End Sub
例:
Sub ShowMessage()
MsgBox "こんにちは!"
End Sub
呼び出し方法:
ShowMessage()
引数付きSubプロシージャ
Subには引数(パラメータ)を指定して、呼び出し元から値を受け取ることができます。
Sub Greet(name As String)
MsgBox "こんにちは、" & name & "さん!"
End Sub
Greet("佐藤")
複数の引数を使う
引数はカンマで区切って複数指定できます。
Sub ShowProduct(name As String, price As Integer)
MsgBox name & ":" & price & "円"
End Sub
ShowProduct("ノートパソコン", 120000)
ByVal と ByRef
引数は ByVal
(値渡し)と ByRef
(参照渡し)を使い分けることができます。ByValは変数のコピー、ByRefは元の値を変更できます。
Sub DoubleValue(ByRef num As Integer)
num = num * 2
End Sub
Dim value As Integer = 10
DoubleValue(value)
MsgBox value ' 結果:20
Functionとの違い
項目 |
Sub(プロシージャ) |
Function(関数) |
戻り値 |
なし |
あり(Return文) |
使用目的 |
処理のみ実行 |
処理結果を返す |
呼び出し結果 |
値は返されない |
結果を変数に代入できる |
クラス内でのSubの利用
Public Class Person
Public Name As String
Public Sub SayHello()
MsgBox("こんにちは、" & Name & "です。")
End Sub
End Class
Dim p As New Person
p.Name = "田中"
p.SayHello()
まとめ
Subプロシージャは、処理をまとめて再利用したいときや、プログラムの構造を整理したいときに非常に役立ちます。戻り値が必要ない処理はSubにまとめておくことで、コードの可読性とメンテナンス性が向上します。Functionとの違いを意識しながら、適材適所で使い分けましょう。