20250718_【VBA】スパとふゆの0からはじめるExcelマクロ(1日目)

1時間でVBAの基礎を完全マスター!初心者が絶対挫折しないExcelマクロ入門【講座レポート】

イントロダクション:ゆるく楽しい雰囲気でVBAを学ぼう

この記事は、ExcelやVBAを学ぶためのコミュニティ「Excel Fun.xls*」で配信されたライブ講座、「スパとふゆの0からはじめるExcelマクロ」の第1回目の内容をまとめたレポートです。

この講座は、講師の和風スパゲティさん(以下、スパさん)が、プログラミング完全初心者の生徒役であるふゆさんにマクロを教えていく様子をそのまま配信するという、なんとも「ゆるく楽しい」スタイルで進められます。「プログラミングって難しそう…」と身構えている方も、この講座の雰囲気ならきっとリラックスして学べるはずです。

今回のゴールは明確です。ずばり、「VBAを書くための環境設定から、プログラミングの3大要素のうち『変数』と『分岐』という2つの超重要概念を1時間で習得すること」。この記事を読めば、あなたもVBAの大きな一歩を踏み出せます!

【準備編】プロも実践!VBAを快適に書くための環境設定

VBAを書き始める前に、プロも実践している重要な初期設定を行いましょう。快適な開発環境は、学習効率を大きく左右します。

1. 「開発」タブを表示する

まずは、マクロを操作するための「開発」タブをExcelのリボンに表示させます。

  1. Excelのリボン(「ファイル」や「ホーム」などが並んでいる場所)で右クリックします。
  2. 表示されたメニューから「リボンのユーザー設定」を選択します。
  3. 画面右側のリストにある「開発」にチェックを入れ、「OK」をクリックします。

これで、リボンに「開発」タブが追加されます。

2. VBE(Visual Basic Editor)を起動する

次に、VBAのコードを書くための専用エディタ、VBE (Visual Basic Editor) を開きます。「開発」タブの一番左にある「Visual Basic」ボタンをクリックしてください。ここがあなたの作業場になります。

3. プロが推奨するVBEオプション設定

VBEを開いたら、コードを書き始める前に2つの重要な設定を行いましょう。「ツール」メニューから「オプション」を選択してください。

  • 「変数の宣言を強制する」にチェックを入れる これは非常に重要な設定です。チェックを入れると、コードを書く場所にOption Explicitという「おまじない」が自動で挿入されるようになります。このおまじないは、予期せぬエラーを防ぐためのもので、詳細は後々解説されます。まずは必ずチェックを入れておきましょう。
  • 「自動構文チェック」のチェックを外す こちらは逆にチェックを外すことが推奨されています。これにチェックが入っていると、コード入力中に頻繁に警告ダイアログが表示され、かえって作業の妨げになることがあります。

4. 見やすい画面にカスタマイズする

オプション画面の「エディターの設定」タブでは、コードの文字色や背景色、フォントなどを自由に変更できます。講座では、目に優しい黒い背景をベースに、キーワードなどを色分けしてコードの構造を視覚的に分かりやすくする設定が紹介されました。

▼ 標準コード

▼ 選択された文字

▼ 構文エラーの文字

▼ 次のステートメント

▼ ブレークポイント

▼ コメント

▼ キーワード

フォントは、コードが見やすい「MS ゴシック (日本語)」「BIZ UDゴシック (日本語)」などの等幅フォントがおすすめです。講座では「等幅警察が怒るから(笑)」といった冗談も交えつつ、コードの横のラインが揃って見やすい等幅フォントのメリットが語られました。自分が一番集中できる、見やすい環境を整えることも上達への近道です。

【実践編1】感動の第一歩!マクロを動かしてみよう

いよいよ、最初のマクロを作成し、動かす感動を体験してみましょう。

1. マクロを書く場所(標準モジュール)を用意する

VBEの画面左側にあるThisWorkbookを右クリックし、「挿入」→「標準モジュール」を選択します。すると、Module1という白いシート(設定によっては黒いシート)が表示されます。ここがマクロコードを書いていく場所です。

2. 最初のマクロを書いてみる

以下のコードを標準モジュールに打ち込んでみましょう。

Sub Test()
    MsgBox "こんにちは"
End Sub

Sub Test()End Subの間に書かれたコードが、一連の処理の塊になります。MsgBox "こんにちは"は、「『こんにちは』という文字をメッセージボックスに表示しなさい」という命令です。

3. マクロを実行する

コードを書き終えたら、VBEの上部にある緑色の再生ボタン(▶)をクリックします。すると…

画面に「こんにちは」と書かれた小さなウィンドウが表示されます! 講座では、実行したふゆさんから「出ました!『こんにちは』って」と歓声が上がりました。この「わあ、動いた!」という瞬間こそ、プログラミングの面白さへの入り口だとスパさんは語ります。

4. Excelシートのボタンからマクロを実行する

次に、作成したマクロをExcelシート上のボタンに登録して、より実用的にしてみましょう。

  1. Excelシートに戻り、「挿入」タブの「図」グループにある「ボタン(フォームコントロール)」を選択します。
  2. シートの上でドラッグして、好きな大きさのボタンを描画します。
  3. ボタンを配置するとすぐに「マクロの登録」ウィンドウが表示されるので、先ほど作成したマクロ(Test)を選択し、「OK」をクリックします。
  4. ボタンに表示されている名前は自由に変更できます。ボタンを右クリックして「テキストの編集」を選び、「挨拶」などに変更してみましょう。

これで、Excelシート上のボタンをクリックするだけで、いつでもマクロを実行できるようになりました。

ちなみに、マクロ名(Sub Test()Testの部分)は、Sub 挨拶する()のように日本語にすることも可能です。ただし、名前を変更した場合は、ボタンを右クリックして「マクロの登録」から、新しい名前のマクロを再度登録し直す必要があります。

【実践編2】プログラミングの肝!データを保存する「変数」

ここからは、プログラミングで最も重要な概念の一つである「変数」について学んでいきます。

変数とは「データを入れておくための箱」

変数とは、一言でいえば「データを入れておくための箱」です。プログラムの中で、文字や数値を一時的に保存しておく場所だと考えてください。

変数を使って挨拶ボットを作ってみよう

実際に変数を使ったコードを書いて、その働きを体験してみましょう。先ほどの挨拶マクロを以下のように改造します。

Sub 挨拶する()
    Dim 挨拶
    挨拶 = InputBox("挨拶してください")
    MsgBox 挨拶
End Sub

このコードは、以下の流れで動きます。

  1. Dim 挨拶 まず、「挨拶」という名前の空の変数(箱)を用意します。
  2. InputBox("挨拶してください") 次に、InputBoxが実行され、画面に「挨拶してください」というメッセージと入力欄が表示されます。ユーザーがここに入力した文字(例えば「おはよう」)が、次のステップに渡されます。
  3. 挨拶 = ... =(イコール)は、右側の値を左側の変数(箱)に入れる、という代入の命令です。ユーザーが入力した「おはよう」という文字が、挨拶という箱の中に格納されます。
  4. MsgBox 挨拶 最後に、MsgBox挨拶変数の中身を表示します。

ここで非常に重要なポイントは、MsgBox "挨拶"ではなくMsgBox 挨拶と、ダブルクォーテーションを外すことです。スパさんからも「ダブルクォーテーションも消してね」と念押しがありました。

  • MsgBox "挨拶" → 「挨拶」という文字そのものを表示
  • MsgBox 挨拶挨拶という変数の中身を表示

この違いは必ず覚えておきましょう。

変数を使ってセルの値を計算する

変数は、Excelのセルとデータをやり取りする際に真価を発揮します。A1セルとA2セルの値を足し算して、結果をA3セルに書き出すマクロを作ってみましょう。

Sub セルの足し算()
    Dim x
    Dim y
    x = Range("A1")
    y = Range("A2")
    Range("A3") = x + y
End Sub

このコードは、以下の処理を行っています。

  • x = Range("A1")Range("A1")はA1セルのことです。A1セルの値を読み取り、変数x(箱)に入れています。
  • y = Range("A2"):同様に、A2セルの値を読み取り、変数yに入れています。
  • Range("A3") = x + y:変数xyの中身を足し算し、その結果をA3セルに書き出しています。

このように、変数を使うことでセルの値をプログラム内で自由に計算し、結果を好きなセルに反映させることができるのです。

【実践編3】AIのように判断させる「条件分岐(If文)」

プログラミングの基本は「変数」「分岐」「繰り返し」という3つの要素で成り立っています。このセクションでは、その2つ目である「分岐」を学びます。

スパさんは、この基本要素を学ぶ重要性について次のように語ります。 「今はチャットAI(ChatGPTなど)にお願いすればコードを書いてくれますが、修正したり読んだりするためには、この基本要素を知っておく必要があります」 AIが書いたコードを理解し、自分の思い通りにカスタマイズするためにも、この「分岐」は欠かせない知識です。

If文の基本構造

分岐とは、特定の条件に応じて処理の内容を変えることです。VBAではIf文(イフ文)を使ってこれを実現します。基本の考え方は「もし〇〇ならばAを実行し、そうでなければBを実行する」という、ExcelのIF関数とよく似たものです。

入力された内容が数値かどうかを判定する

先ほどの挨拶マクロをさらに改造し、InputBoxに入力された内容が数値かどうかを判断して、処理を変えるマクロを作ってみましょう。

ここで使うのがIsNumeric()という関数です。これは、引数に渡された値が数値であればTrue(真)、そうでなければFalse(偽)を返す便利な関数です。

Sub 挨拶する()
    Dim 挨拶
    挨拶 = InputBox("挨拶してください")

    If IsNumeric(挨拶) = True Then
        MsgBox "OK"
    Else
        MsgBox 挨拶
    End If
End Sub

このコードの処理の流れは以下の通りです。

  1. If IsNumeric(挨拶) = True Then:もし、変数挨拶の中身が数値(IsNumeric(挨拶)Trueになる)ならば、
  2. MsgBox "OK"Thenの直後にあるこの処理を実行します。
  3. Else:そうでなければ(数値でなければ)、
  4. MsgBox 挨拶Elseの直後にあるこの処理を実行します。
  5. End If:ここで条件分岐の処理は終わりです。

このマクロを実行して「123」のような数値を入力すると「OK」と表示され、「おはよう」のような文字を入力すると「おはよう」と表示されるようになります。このように、If文を使うことでプログラムに判断力を持たせることができます。

【最重要】上達への近道!「デバッグ」と「インデント」を使いこなそう

最後に、初心者が最初に覚えるべき、今後の上達に不可欠な2つの重要なテクニックをご紹介します。

1. F8キーによるステップ実行(デバッグ)

デバッグ」とは、プログラムのミス(バグ)を見つけて修正する作業のことです。その最も強力な武器が、F8キーによるステップ実行です。

VBEの画面でF8キーを押すと、プログラムを再生するのではなく、1行ずつ実行できます。黄色いハイライトが今から実行される行を示し、F8キーを押すたびに1行ずつ下に移動していきます。

これにより、コードがどのような順番で動いているのか、変数の値がどのように変化していくのかを目で追うことができます。特に、If文の条件によってどちらの処理に進むのかを確認する際に絶大な効果を発揮します。

さらに、以下の機能も合わせて覚えておきましょう。

  • ブレークポイント:コードの左端の灰色部分をクリックすると、茶色い丸印がつきます。これがブレークポイントです。プログラムを実行すると、この場所で一時停止させることができます。講座では「InputBoxを通ると(止める間もなく)最後まで行ってしまうことがあるので」と、特定の場所で意図的に止めたい場合に有効だと解説されました。
  • 変数の値を確認:ステップ実行で停止中に、コード上の変数名にマウスカーソルを合わせると、その時点で変数に格納されている値がポップアップで表示されます。

ステップ実行は、処理の流れを理解し、ミスの原因を発見するための最強のツールです。必ずマスターしてください。

2. インデント(字下げ)

インデントとは、SubIf文のブロックの中の処理をTabキーで一段右にずらす(字下げする)ことです。逆に、Shift + Tabキーでインデントを戻すこともできます。

' インデントがない例(読みにくい)
Sub 挨拶する()
Dim 挨拶
挨拶 = InputBox("挨拶してください")
If IsNumeric(挨拶) = True Then
MsgBox "OK"
Else
MsgBox 挨拶
End If
End Sub
' インデントがある例(読みやすい)
Sub 挨拶する()
    Dim 挨拶
    挨拶 = InputBox("挨拶してください")

    If IsNumeric(挨拶) = True Then
        MsgBox "OK"
    Else
        MsgBox 挨拶
    End If
End Sub

インデントがないと、どこからどこまでが一つの処理の塊なのかが非常に分かりにくくなります。インデントを適切につけることで、コードの構造が視覚的に理解しやすくなり、自分自身にとっても、他の人がコードを読むときにも親切です。読みやすいコードを書くための大切な「作法」として、必ず習慣づけましょう。

まとめ:1時間でここまでできる!VBAの大きな一歩を踏み出そう

今回の講座を振り返ってみましょう。たった1時間で、VBAを書くための環境設定から始まり、プログラミングの3大要素のうち「変数」と「分岐」という、最も根幹となる2つの概念をマスターしました。

  • VBEの初期設定で快適な開発環境を整え、
  • 変数を使ってデータを自在に扱い、
  • If文でプログラムに判断力を持たせ、
  • デバッグインデントでコードの品質を高める方法を学びました。

これは、あなたの日常業務を自動化していく上で、非常に大きな一歩です。

この「スパとふゆの0からはじめるExcelマクロ」講座は、原則として毎週金曜日の22時から開催予定です(他のイベントがある場合はお休み)。次回はどんな新しい世界が待っているのでしょうか。ぜひ、一緒に学び続けていきましょう!

和風スパゲティのレシピ
毎週金曜22:00~「スパとふゆの0からはじめるExcelマクロ」 - 和風スパゲティのレシピ 毎週金曜日 22:00~「スパとふゆの0からはじめるExcelマクロ」と称して、Excelマクロ初心者の友人ふゆさんに0からVBAを教ているところをただ垂れ流すだけの配信をYoutubeLi...
和風スパゲティのレシピ
【ExcelVBA】スパとふゆの0からはじめるExcelマクロ まとめ - 和風スパゲティのレシピ Excelマクロ初心者のふゆさんに0からVBAを教えるLive配信です。毎週金曜22:00~お気軽にお越しください(´∀`)配信アーカイブと取り組んだ内容をまとめましたので復習や見逃...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次