Excel VBAってそもそも何者?
Excel VBA は「Excelに入っている小さなプログラミング言語」です。
正式名称は Visual Basic for Applications。
あなたが普段マウスでやっている操作(コピー、貼り付け、集計、並べ替え…)を、VBAで「手順」として書いておくと、ボタン一発で自動でやってくれるようになります。
イメージとしては、
- 人間がやる作業手順 → 「マクロ(Macro)」
- そのマクロを書く言語 → 「VBA」
という関係です。
「プログラミング」と聞くと難しそうですが、Excel VBAは
- Excelの操作に特化している
- 画面を見ながら試しやすい
- 1行だけの簡単な命令から始められる
ので、プログラミング超初心者にはむしろ向いています。
VBAを始めるための“基礎環境”とは?
開発タブを表示する
VBAを書くための入口が「開発」タブです。
これが出ていないと、VBAの画面(VBE)に行けません。
Excelの上のリボンに「ホーム」「挿入」「ページレイアウト」などが並んでいますが、その中に「開発」があればOK。なければ設定で出します。
手順のイメージはこんな感じです。
- Excel左上の「ファイル」をクリック
- 「オプション」を開く
- 「リボンのユーザー設定」を選ぶ
- 右側の一覧から「開発」にチェックを入れて「OK」
これでリボンに「開発」タブが出てきます。
ここが、VBAの世界への玄関です。
VBE(VBAの編集画面)を開く
VBAのコードは、普通のシート上には書きません。
専用の編集画面「VBE(Visual Basic Editor)」で書きます。
開き方は2通りあります。
- キーボードで
Alt + F11 - 「開発」タブ → 「Visual Basic」ボタンをクリック
すると、別ウィンドウでVBAの画面が開きます。
左側に「VBAProject(ブック名)」、右側にコードを書く白い画面が出ていればOKです。
モジュールを挿入する
VBAのコードは「モジュール」という箱の中に書きます。
- VBEの上のメニューから「挿入」→「標準モジュール」をクリック
- 左側に「Module1」が増え、右側に真っ白なコード画面が出る
ここに、実際のVBAコードを書いていきます。
「マクロ有効ブック」を理解する
拡張子 .xlsx と .xlsm の違い
ここが超重要ポイントです。
- 普通のExcelファイル:
〇〇.xlsx - マクロ(VBA)を含められるファイル:
〇〇.xlsm
.xlsx にはマクロを保存できません。
もし .xlsx のまま保存すると、せっかく書いたVBAコードが「なかったこと」にされます。
だから、VBAを使うときは必ず
- 「Excel マクロ有効ブック(*.xlsm)」として保存する
というのが鉄則です。
なぜ「マクロ有効ブック」が必要なのか
Excelはセキュリティのために、
- 普通のファイル(.xlsx)にはマクロを入れさせない
- マクロを入れたいなら「このファイルはマクロを使う特別なファイルですよ」と宣言してね
というルールになっています。
その「宣言」が、拡張子 .xlsm です。
つまり、
.xlsm= 「このブックにはマクロが入るかもしれません」という印.xlsx= 「マクロは入れません」という普通のブック
と覚えておくとスッキリします。
実際にマクロ有効ブックを作ってみる
超初心者向けに、実際にやる流れをイメージで書きます。
- Excelを開く(空のブックでOK)
- 左上の「ファイル」→「名前を付けて保存」
- 「ファイルの種類」で「Excel マクロ有効ブック(*.xlsm)」を選ぶ
- ファイル名を
VBA練習用.xlsmなどにして保存
これで、あなた専用の「VBA練習用マクロ有効ブック」が完成です。
今後は、このファイルの中でVBAを書いていきます。
超シンプルなマクロを書いてみる(例題)
まずは「メッセージを出すだけ」のマクロ
いきなり難しいことはしません。
「メッセージボックスを1つ出すだけ」のマクロから始めましょう。
先ほど作った .xlsm ファイルを開き、次の流れで進めます。
Alt + F11でVBEを開く- 「挿入」→「標準モジュール」で Module1 を作る
- 右側の白い画面に、次のコードを書きます
Sub あいさつ()
MsgBox "こんにちは!VBAの世界へようこそ"
End Sub
VBこれで、あなたの人生初VBAマクロが完成です。
このコードの意味をかみ砕いて解説
1行目:Sub あいさつ()
- 「Sub(サブ)」は「マクロのはじまり」の合図
あいさつはマクロの名前(自分で決めてOK、日本語でもOK)()は「これから命令が始まりますよ」という印
3行目:MsgBox "こんにちは!VBAの世界へようこそ"
MsgBoxは「メッセージボックスを表示して」という命令" "で囲まれた部分が、実際に表示される文字
5行目:End Sub
- 「このマクロはここで終わりです」という印
つまり、この3つのセットで
- Sub ~ End Sub:マクロの枠
- その中に命令を書いていく
という構造になっています。
マクロを実行してみる
書いただけでは動きません。
実行して、初めて「おお、動いた!」になります。
実行方法は2つあります。
1つ目:VBEから実行
- VBEの中で、カーソルを
Sub あいさつ()のどこかに置く - キーボードで
F5を押す
すると、Excel側に戻ってメッセージボックスが表示されます。
2つ目:Excelの「マクロ」から実行
- Excelに戻る
- 「開発」タブ → 「マクロ」ボタンをクリック
- 一覧から「あいさつ」を選んで「実行」
どちらでもOKです。
「こんにちは!VBAの世界へようこそ」と出たら、大成功です。
もう一歩:セルに文字を書くマクロ(例題2)
例題:A1セルに自動で文字を入れる
次は、Excelらしいことをしてみましょう。
「A1セルに文字を自動で入れる」マクロです。
同じ Module1 に、次のコードを追加してみてください。
Sub セルに書き込む()
Range("A1").Value = "VBAで書き込みました"
End Sub
VBコードの意味
Range("A1").Value = "VBAで書き込みました"
Range("A1")は「A1セル」という意味.Valueは「そのセルの中身(値)」=は「~にする」"VBAで書き込みました"が、実際に入る文字
つまり日本語にすると、
A1セルの値を「VBAで書き込みました」にしなさい
という命令です。
実行して確認する
Sub セルに書き込む()の中にカーソルを置くF5を押して実行- Excelのシートに戻って、A1セルを見る
A1セルに「VBAで書き込みました」と入っていればOKです。
ここまでできたら、もう立派に「VBAでExcelを動かした」ことになります。
「マクロ有効ブック」で気をつけるべきポイント
重要ポイント1:必ず .xlsm で保存する
VBAを書いたあとに、うっかり
- 「上書き保存」で
.xlsxにしてしまう - 別名保存で「ファイルの種類」を変え忘れる
と、マクロが消えます。
特に最初のうちは、
- 「このファイルはVBA用だから、最初に必ず .xlsm で作る」
- 「VBAを書いたファイルは、常に .xlsm のまま上書き保存する」
というクセをつけておくと安全です。
重要ポイント2:開いたときの「マクロを有効にする」
.xlsm ファイルを開くと、画面上部に
セキュリティの警告:マクロが無効にされました
[コンテンツの有効化]
のような黄色いバーが出ることがあります。
これはExcelが
このファイル、マクロ入ってるかもだけど、本当に動かしていい?
と聞いてきている状態です。
自分で作ったファイルなら「コンテンツの有効化」を押してOKです。
(知らない人からもらったファイルは注意が必要ですが、今は自作だけを触る前提で大丈夫です)
重要ポイント3:マクロは「動くExcelのレシピ」
マクロ有効ブックは、
- 普通のExcelファイル(データ)
- + マクロ(動き方のレシピ)
がセットになったもの、と考えると分かりやすいです。
.xlsx は「料理だけ」.xlsm は「料理+レシピ(マクロ)」
というイメージです。
まとめ:超初心者がまず押さえるべき流れ
今日のゴールを整理
あなたが今、押さえておけばいいポイントは次の4つです。
- VBAは「Excelを自動で動かすための言語」
- VBAを書くには「開発タブ」と「VBE」が必要
- マクロを保存するには「マクロ有効ブック(.xlsm)」が必須
- 超簡単なマクロ(メッセージ表示・セルに書き込み)から始めればOK
次の一歩としておすすめの練習
- あいさつのメッセージを、自分の名前入りに変えてみる
例:MsgBox "こんにちは、山田さん!VBAへようこそ" - セルに書き込む場所を変えてみる
例:Range("B3").Value = "ここはB3です" - 2行以上の命令を入れてみる
例:A1とB1に別々の文字を書き込む
Sub 練習その1()
Range("A1").Value = "これはA1です"
Range("B1").Value = "これはB1です"
End Sub
VBこうやって少しずつ「命令を増やす」「場所を変える」「文字を変える」を繰り返すと、自然とVBAの感覚がつかめてきます。
