Subの概要
処理をまとめて実行するプロシージャを定義する VBAの予約語 | ||
Sub 概要 Sub(サブプロシージャ)は、VBA で処理をまとめて記述し、必要なときに呼び出せるブロックを作成するために使用されます。 わかりやすく説明 Sub は、「この処理をひとまとめにして、あとで簡単に呼び出せるようにするよ!」という命令です。 |
||
|
Sub の基本的な使い方
Sub を定義し、呼び出す基本的な例です。
Sub ExampleSub()
MsgBox "Hello, VBA!", vbInformation, "Sub の例"
End Sub
解説:
Sub ExampleSub()
で新しいサブプロシージャを作成。- Sub 内で
MsgBox
を使ってメッセージを表示。 - 実行するには、VBA エディターで
ExampleSub
を実行する。
Sub に引数を渡す
Sub に引数を渡して、動的に処理を変更する例です。
Sub GreetUser(name As String)
MsgBox "こんにちは、" & name & " さん!", vbInformation, "挨拶"
End Sub
Sub TestGreet()
Call GreetUser("田中")
End Sub
解説:
GreetUser
にはname
という引数を設定。TestGreet
でGreetUser "田中"
を呼び出し、動的に名前を変更。
Excel のセルを操作する Sub
Sub を使って、Excel のセルに値を入力する例です。
Sub WriteToExcel()
Range("A1").Value = "Hello, Excel!"
End Sub
解説:
Range("A1").Value
を変更し、セル A1 に文字列を入力。- Sub を呼び出すだけで、簡単に Excel のデータを書き換えられる。
エラーを回避する方法
Sub を使う際にエラーを防ぐ方法を紹介します。
Sub SafeWrite()
On Error Resume Next
' 存在しないシートに書き込もうとするとエラーになる
Sheets("Sheet999").Range("A1").Value = "Test"
If Err.Number <> 0 Then
MsgBox "シートが見つかりません", vbExclamation, "エラー"
Err.Clear
End If
End Sub
解説:
- エラーハンドリングを追加し、存在しないシートへの操作を防ぐ。
Sub の注意事項
- 戻り値を返せない: 戻り値が必要な場合は
Function
を使用する。 - 複雑な処理は分割して Sub を作成する: 1 つの Sub に長すぎる処理を入れると、可読性が下がる。
- エラーハンドリングを適用する: 予期しないエラーを防ぐために、
On Error
を使うのが望ましい。
よくある質問
- Q: Sub はどうやって実行しますか?
- A: VBA エディターで F5 を押すか、マクロとして実行できます。
- Q: Function との違いは何ですか?
- A:
Sub
は戻り値を持たず、Function
は戻り値を持ちます。 - Q: Sub の引数を省略できますか?
- A: 省略可能な引数を作るには、
Optional
を使用します。 - Q: 他の Sub を呼び出せますか?
- A: はい。
Call SubName
またはSubName
で呼び出せます。
まとめ
- Sub は処理をまとめて実行するためのプロシージャ。
- 戻り値はなく、値を返したい場合は Function を使用する。
- 引数を使うことで、動的に処理を変更できる。
- エラーハンドリングを適用し、予期しないエラーを防ぐ。