では次は、プログラミング完全初心者でも「マクロってこういうことか!」と直感でわかるように、図解イメージを交えながら、やさしく解説します。
全体のイメージ:「マクロ=命令をまとめたレシピ」
Excel VBA の「Subプロシージャ(サブプロシージャ)」は、
Excel に「これを順番にやってね」と命令を並べた“レシピ”のようなものです。
図1:Subプロシージャのイメージ
┌─────────────┐
│ Sub 朝のルーチン() ← レシピの名前
│ コーヒーをいれる ← 命令①
│ 朝ごはんを食べる ← 命令②
│ 歯をみがく ← 命令③
│ End Sub ← 終わりの印
└─────────────┘
Excelでも同じ考え方です。
「セルに値を入れる」「色をつける」「メッセージを出す」といった命令を、
この箱の中に順番に書いていきます。
どこに書くの? —「VBAエディター(VBE)」を開こう
Excelの画面の中に直接書くわけではなく、
専用の「VBAエディター」という画面に書きます。
図2:VBEを開く手順
| 手順 | 操作 | 画面の様子 |
|---|---|---|
| ① | Excelを開く | 普通のワークシート画面 |
| ② | 「開発」タブをクリック | ※見えないときは「ファイル→オプション→リボンのユーザー設定→開発に✔」 |
| ③ | 「Visual Basic」ボタンを押す | VBEという別ウィンドウが開く |
| ④ | 「挿入」→「標準モジュール」 | 左側に「Module1」が追加される |
Subプロシージャの書き方
箱の形はいつもこうです:
Sub 名前()
' 処理(やりたいこと)
End Sub
VBSubは「ここからマクロが始まるよ」End Subは「ここで終わりだよ」'(アポストロフィ)から後ろはコメント(メモ書き)
まずは動かしてみよう!
例題:メッセージを出すマクロ
Sub Hello()
MsgBox "こんにちは!VBAを始めましょう。"
End Sub
VB図3:実行するとこうなる
+------------------------------+
| こんにちは!VBAを始めましょう。 |
| [OK] |
+------------------------------+
これで「VBAが動いた!」という成功体験ができます。
この感覚をつかむのが第一歩です!
少し応用 — Excelのセルを操作してみよう
例題2:A1セルに文字を入れる
Sub WriteText()
Range("A1").Value = "VBAの世界へようこそ!"
End Sub
VB実行すると A1 セルに文字が入ります。
「セルを操作する」=Excelを自動で動かす、ということですね。
図4:Range(“A1”) のイメージ
┌──┬───┬──┐
│ A1 │ B1 │ C1 │ ← Range("A1") はここ!
├──┼───┼──┤
│ A2 │ B2 │ C2 │
└──┴───┴──┘
Range("A1")は「A1セル」を指す。.Value = "文字列"は「そこに文字を入れる」という命令。
例題3:選択中のセルを黄色にする
Sub HighlightSelection()
Selection.Interior.Color = vbYellow
End Sub
VBSelection:今選んでいるセルのことInterior.Color:セルの塗りつぶし色vbYellow:黄色を表すキーワード
👉 実行すると選択したセルがパッと黄色に変わります!
例題4:列Aの合計を出す
Sub SumColumnA()
Dim total As Double
total = WorksheetFunction.Sum(Range("A1:A10"))
MsgBox "合計は " & total & " です。"
End Sub
VBWorksheetFunction.Sum(...)はExcelの=SUM()と同じ。&は文字列をつなげる。
→ 結果がメッセージボックスに表示されます。
どうやって実行するの?
図5:マクロを動かす3つの方法
| 方法 | 操作 | おすすめ度 |
|---|
| 🧠 ① VBEでF5キー | コードにカーソルを置いてF5 | ◎ いちばん簡単 |
| 🧾 ② ExcelでAlt+F8 | マクロ一覧 → 実行 | ◎ よく使う |
| 🔘 ③ ボタンを作って割り当て | 開発タブ→「挿入」→ボタン | ○ 実用的(仕事で使う時) |
よくある間違い
| 症状 | 原因 | 対処 |
|---|---|---|
| マクロが実行できない | マクロが無効 | Excel設定で「マクロを有効」にする |
| Subが見つからない | 名前のタイプミス | 半角・全角に注意 |
| エラーで止まる | セルが空、または数字じゃない | If IsNumeric(...) Then で守る |
まとめ(やさしくおさらい)
| まとめ | 意味 |
|---|---|
| Sub ~ End Sub | マクロの始まりと終わり |
| MsgBox | メッセージ表示 |
| Range(“A1”).Value | セルに値を入れる |
| Selection.Interior.Color | 選択範囲の色を変える |
| For / If | 繰り返しや条件分岐を作る |
| Alt+F8 or F5 | 実行方法 |

