Excel VBA | Subプロシージャ(マクロ)の考え方

VBA
スポンサーリンク

プログラミング初心者向けに、Excel VBAの「Subプロシージャ」をできるだけやさしく、例題を交えて説明します。


Subプロシージャってなに?

  • 「処理のまとまり」を作る仕組みです。
  • 料理でいうと「レシピの一品」みたいなもの。
    → 例えば「カレーを作る」全体の中に「玉ねぎを切る」「炒める」「煮込む」といった小さな手順がありますよね。
  • プログラムも同じで、小さな処理を箱に入れて名前をつけるのがSubプロシージャです。

基本の形

Sub 名前()
    ' ここにやりたい処理を書く
End Sub
VB

例:セルA1に「こんにちは」と表示する

Sub Hello()
    Range("A1").Value = "こんにちは"
End Sub
VB

👉 この「Hello」を実行すると、A1に文字が入ります。


どう役立つの?

  1. 整理できる
    長いプログラムを分けて書けるので、読みやすくなる。
  2. 繰り返し使える
    同じ処理を何度も書かなくていい。
  3. 再利用できる
    他のプログラムから呼び出して使える。

呼び出しの流れ

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. まずは1つのSubで完結する処理を書いてみる
    例:セルに文字を入れる、計算して結果を表示する。
  2. 処理を分けてみる
    • 「計算するSub」
    • 「結果を表示するSub」
      など役割ごとに分ける。
  3. 呼び出して組み合わせる
    → 小さな部品を組み合わせて大きなプログラムを作る感覚をつかむ。

例題(練習用)

「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プロシージャは「処理の箱」
  • 名前をつけて呼び出せるので、整理・再利用ができる
  • 小さな処理を分けて組み合わせるのがコツ
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました