Excel VBAって何?超初心者向けのイメージづくり
Excel VBA は「Excelを自動で動かすための言語」です。
正式名称は Visual Basic for Applications。難しく聞こえますが、やっていることは「Excelの作業手順を言葉で書いておく」だけです。
毎回、同じような操作をしている場面を思い出してみてください。
毎月の売上表をコピーして、並べ替えて、合計を出して、別シートに貼る――こういう作業を、VBAで「手順」として書いておくと、ボタン一つで一気に終わるようになります。
人間の言葉にすると、こんな関係です。
VBA = 「Excelに対する命令の言語」
マクロ = 「その命令をまとめたレシピ(手順書)」
「プログラミング」と聞くと構えてしまいがちですが、Excel VBAは次の点でかなり優しめです。
Excelの画面を見ながら試せる
一行だけの命令から始められる
「うまくいったかどうか」がすぐ目で見て分かる
だから、プログラミング超初心者の入口としては、かなり良い選択肢です。
VBA基礎環境を整える
開発タブを出す理由と意味
VBAを書くためには、「開発」タブが必要です。
これは、Excelに隠れている「プログラミング用のスイッチ」を表に出す作業だと思ってください。
開発タブがない状態だと、VBAの画面(VBE)に行く入口がありません。
なので、最初に一度だけ設定しておきます。
手順のイメージはこうです。
Excelの左上の「ファイル」を押す
「オプション」を開く
「リボンのユーザー設定」を選ぶ
右側の一覧から「開発」にチェックを入れて「OK」を押す
これで、リボンに「開発」というタブが追加されます。
ここが、VBAの世界への玄関です。
VBE(VBAの編集画面)を開く
VBAのコードは、シートのセルの中には書きません。
専用の編集画面「VBE(Visual Basic Editor)」で書きます。
開き方は二通りあります。
キーボードで Alt+F11 を押す
開発タブの「Visual Basic」ボタンをクリックする
どちらでも同じ画面が開きます。
左側に「VBAProject(ブック名)」、右側に真っ白なコードを書くスペースが出ていればOKです。
モジュールを挿入する意味
VBAのコードは「モジュール」という箱の中に入れて管理します。
一つのモジュールの中に、複数のマクロ(Subプロシージャ)を書いていくイメージです。
VBEの上のメニューから「挿入」→「標準モジュール」を選ぶと、左側に「Module1」が増え、右側に真っ白なコード画面が出ます。
ここが、あなたのコードを書くキャンバスになります。
マクロの保存形式(xlsm)を理解する
ここが今日の一番の重要ポイントです。
「分かったつもり」で進むと、後で痛い目を見るところなので、少し深くいきます。
xlsx と xlsm の違いを感覚でつかむ
Excelファイルには、代表的に二つの拡張子があります。
〇〇.xlsx
〇〇.xlsm
見た目はほとんど同じですが、中身のルールが決定的に違います。
xlsx:普通のExcelファイル。マクロ(VBA)は保存できない
xlsm:マクロを保存できる「マクロ有効ブック」
つまり、マクロを使いたいなら、必ず xlsm で保存する必要があります。
もし xlsx のまま保存すると、せっかく書いたVBAコードがファイルに残りません。
ここは本当に重要なので、言い方を変えてもう一度。
マクロを書いたのに、ファイルを xlsx で保存すると、
「マクロはファイルの外に置き去りにされて、次に開いたときには消えている」
という状態になります。
なぜ「マクロ有効ブック」という形式が分かれているのか
これはセキュリティのためです。
Excelはこう考えています。
普通のファイル(xlsx)には、危険なプログラム(マクロ)は入れさせない
マクロを入れたいなら、「このファイルはマクロを使う特別なファイルです」と宣言してもらう
その「宣言」が、拡張子 xlsm です。
言い換えると、
xlsx = 「データだけの安全なファイル」
xlsm = 「中にプログラム(マクロ)が入る可能性があるファイル」
という区別です。
だから、Excelは xlsm を開いたときに、よくこう聞いてきます。
「このブックにはマクロが含まれているかもしれません。実行してもいいですか?」
これは、あなたを守るための確認です。
実際に xlsm で保存してみる流れ
超初心者向けに、実際の操作のイメージを順番に書きます。
Excelで新しいブックを開く
左上の「ファイル」→「名前を付けて保存」を選ぶ
保存先を選ぶ画面で、「ファイルの種類」をクリックする
一覧から「Excel マクロ有効ブック(*.xlsm)」を選ぶ
ファイル名を「VBA練習.xlsm」などにして「保存」を押す
これで、そのファイルは「マクロを保存できるブック」になります。
以後、このファイルの中で書いたVBAコードは、ちゃんとファイルに保存されます。
xlsm を開いたときの「コンテンツの有効化」
マクロ有効ブック(xlsm)を開くと、画面の上の方に黄色い帯で
「セキュリティの警告:マクロが無効にされました」
「コンテンツの有効化」
のようなメッセージが出ることがあります。
これは、Excelがこう言っている状態です。
「このファイルにはマクロが入っているかもしれないけど、本当に動かしていい?」
自分で作ったファイルなら、「コンテンツの有効化」を押して問題ありません。
他人からもらったファイルの場合は、信頼できる相手かどうかを確認してからにする、というのが基本的な考え方です。
ここで「有効化」を押さないと、マクロは存在していても実行されません。
「マクロを書いたのに動かない」というとき、実はこの有効化を忘れているだけ、ということもよくあります。
超シンプルなマクロを書いて、xlsm に保存してみる
例題1:メッセージを出すだけのマクロ
まずは、動作が分かりやすい「メッセージボックス」を出すマクロを書いてみます。
先ほど作った「VBA練習.xlsm」を開き、次の手順で進めます。
Alt+F11 でVBEを開く
「挿入」→「標準モジュール」で Module1 を作る
右側の白い画面に、次のコードを書きます
Sub あいさつ()
MsgBox "こんにちは!VBAの練習中です"
End Sub
VBこれで、人生初のマクロが完成です。
コードの意味を一行ずつかみ砕く
Sub あいさつ()
マクロのスタートを表すキーワードが Sub です。
その後ろの「あいさつ」はマクロの名前で、あなたが自由に決めて構いません(日本語でもOK)。
「この名前のマクロを実行するよ」というラベルだと思ってください。
MsgBox “こんにちは!VBAの練習中です”
MsgBox は「メッセージボックスを表示して」という命令です。
ダブルクォーテーション ” ” で囲まれた部分が、実際に画面に表示される文字です。
End Sub
「このマクロはここで終わりです」という区切りです。
Sub ~ End Sub の間に、命令を並べていく、という構造になります。
マクロを実行してみる
VBEの画面で、カーソルを Sub あいさつ() のどこかに置き、F5キーを押します。
すると、Excel側に戻って、メッセージボックスがポンと表示されるはずです。
「こんにちは!VBAの練習中です」と出たら成功です。
ここで一度、ファイルを上書き保存してみてください。
このとき、タイトルバーに「VBA練習.xlsm」と表示されていることを確認します。
もしここで xlsx 形式にしてしまうと、今書いたマクロはファイルに残りません。
これが「保存形式(xlsm)が超重要」と言った理由です。
例題2:セルに文字を書き込むマクロ
次は、Excelらしい動きとして「セルに文字を書き込む」マクロを作ります。
同じ Module1 に、次のコードを追加してみてください。
Sub セルに書き込む()
Range("A1").Value = "VBAで書き込みました"
End Sub
VBコードの意味
Range(“A1”).Value = “VBAで書き込みました”
Range(“A1”) は「A1セル」という意味です。
.Value は「そのセルの中身(値)」を指します。
= は「~にする」という代入の記号です。
“VBAで書き込みました” が、実際にセルに入る文字列です。
日本語にすると、
「A1セルの値を『VBAで書き込みました』にしなさい」
という命令になります。
実行して結果を確認する
Sub セルに書き込む() の中にカーソルを置き、F5キーを押します。
Excelのシートに戻って A1 セルを見ると、「VBAで書き込みました」と入っているはずです。
ここでもう一度、上書き保存をします。
このときも、形式が xlsm のままになっていることがとても大事です。
xlsm を使うときに絶対に押さえておきたいポイント
ポイント1:最初に「このファイルはVBA用」と決めておく
VBAの練習をするときは、最初に必ず「マクロ有効ブック(xlsm)」として保存してから書き始める、という習慣をつけると安全です。
新規ブックを開く
すぐに「名前を付けて保存」で xlsm を選ぶ
その後で、VBAを書き始める
この順番にしておくと、「マクロを書いたのに消えた…」という悲劇をほぼ防げます。
ポイント2:拡張子を変えるときの注意
もし、マクロが要らない状態のファイルとして誰かに渡したい場合、xlsm から xlsx に変えて保存することもできます。
ただし、その場合は「マクロは全部消えてもいい」と覚悟したうえで行う必要があります。
xlsx にすると、マクロはファイルに保存されません。
「マクロ付きの版」と「マクロなしの版」を分けたいなら、
VBA付き:VBA練習マクロ有り.xlsm
マクロなし:VBA練習マクロ無し.xlsx
のように、別名で保存して使い分けるのがおすすめです。
ポイント3:xlsm は「データ+プログラム」のセット
感覚的には、こう覚えると分かりやすいです。
xlsx = 料理だけ(データだけ)
xlsm = 料理+レシピ(データ+マクロ)
マクロ有効ブックは、「このファイルを開くと、データだけでなく、動くレシピも一緒に付いてくる」状態です。
だからこそ、Excelは開いたときに「このレシピ、本当に動かしていい?」と確認してくるわけです。
まとめと、次の一歩
今日の内容の整理
今日のテーマを、超初心者目線で整理するとこうなります。
Excel VBA は、Excelを自動で動かすための言語
VBAを書くには、「開発タブ」と「VBE」と「モジュール」が必要
マクロを保存するには、必ず「マクロ有効ブック(xlsm)」で保存する
xlsm は「マクロを含めることができる特別なファイル形式」で、xlsx とは役割が違う
簡単なマクロ(メッセージ表示・セルへの書き込み)から始めると、動きがイメージしやすい
ここまで理解できていれば、もう「超初心者」から一歩抜け出しています。
次にやってみてほしい小さな練習
あいさつマクロのメッセージを、自分の名前入りに変えてみる。
MsgBox "こんにちは、山田さん!VBAの世界へようこそ"
VBセルに書き込む場所を変えてみる。
Range("B3").Value = "ここはB3セルです"
VB複数のセルに書き込むマクロを作ってみる。
Sub 複数セルに書き込む()
Range("A1").Value = "上段左"
Range("B1").Value = "上段右"
Range("A2").Value = "下段左"
Range("B2").Value = "下段右"
End Sub
VBこういう小さな「いじってみる」を繰り返すと、
VBAの文法そのものよりも、「Excelをコードで動かす感覚」が自然と身についてきます。
