プログラミング初心者向けに、Excel VBAの「Subプロシージャ」をできるだけやさしく、例題を交えて説明します。
Subプロシージャってなに?
- 「処理のまとまり」を作る仕組みです。
- 料理でいうと「レシピの一品」みたいなもの。
→ 例えば「カレーを作る」全体の中に「玉ねぎを切る」「炒める」「煮込む」といった小さな手順がありますよね。 - プログラムも同じで、小さな処理を箱に入れて名前をつけるのがSubプロシージャです。
基本の形
Sub 名前()
' ここにやりたい処理を書く
End Sub
VB例:セルA1に「こんにちは」と表示する
Sub Hello()
Range("A1").Value = "こんにちは"
End Sub
VB👉 この「Hello」を実行すると、A1に文字が入ります。
どう役立つの?
- 整理できる
長いプログラムを分けて書けるので、読みやすくなる。 - 繰り返し使える
同じ処理を何度も書かなくていい。 - 再利用できる
他のプログラムから呼び出して使える。
呼び出しの流れ
Subの中から別のSubを呼び出せます。
例:
Sub Main()
Range("A1").Value = "東京"
ShowOsaka
Range("A3").Value = "福岡"
End Sub
Sub ShowOsaka()
Range("A2").Value = "大阪"
End Sub
VB👉 実行すると、A1に「東京」、A2に「大阪」、A3に「福岡」が順番に表示されます。
つまり「Main」が「ShowOsaka」を呼び出して、一時的に処理を渡しているんです。
初心者向け練習ステップ
- まずは1つのSubで完結する処理を書いてみる
例:セルに文字を入れる、計算して結果を表示する。 - 処理を分けてみる
- 「計算するSub」
- 「結果を表示するSub」
など役割ごとに分ける。
- 呼び出して組み合わせる
→ 小さな部品を組み合わせて大きなプログラムを作る感覚をつかむ。
例題(練習用)
「1から10までの合計を計算して表示する」プログラムを、2つのSubに分けて書いてみましょう。
Sub Main()
Dim total As Integer
total = CalcSum()
ShowResult total
End Sub
Sub ShowResult(value As Integer)
Range("A1").Value = "合計は " & value
End Sub
Function CalcSum() As Integer
Dim i As Integer, sum As Integer
sum = 0
For i = 1 To 10
sum = sum + i
Next i
CalcSum = sum
End Function
VB👉 実行すると、セルA1に「合計は 55」と表示されます。
ここでは「計算する部分」と「表示する部分」を分けて、Mainが呼び出しています。
まとめ
- Subプロシージャは「処理の箱」
- 名前をつけて呼び出せるので、整理・再利用ができる
- 小さな処理を分けて組み合わせるのがコツ

