「Excelのマクロって便利そうだけど、何から始めればいいかわからない」。そんな悩みを抱えている方は多いのではないでしょうか。
毎日の手作業をそのまま続けていると、時間も体力も消耗します。ミスも起きやすくなりますよね。
この記事では、Excel初心者でもマクロの作り方がわかるように、開発タブの表示からコードの書き方まで丁寧に解説します。よく使うVBAコード10選もまとめたので、最初の一歩を踏み出してみてください。
ExcelのVBAマクロとは
VBAマクロとは、Excelの操作を自動化する仕組みのことです。手作業で行っている入力や書式設定を、コードで一括実行できます。
VBAとマクロの違い
「VBA」と「マクロ」は混同されがちですが、厳密には意味が異なります。
- マクロ: Excelの操作を記録・再生する機能の総称
- VBA: マクロを動かすためのプログラミング言語(Visual Basic for Applications)
つまり、VBAという言語を使ってマクロを作る、という関係です。詳しくはExcel VBAとマクロの違いの記事で解説しています。
マクロでできること
マクロを使うと、以下のような作業を自動化できます。
- データの入力・コピー・貼り付け
- セルの書式設定(色・フォント・罫線など)
- 複数シートへのデータ転記
- 定型レポートの作成
- ファイルの保存・印刷
手作業で10分かかる作業が、マクロなら数秒で終わることもあります。具体的な自動化の活用例はVBAで仕事を自動化する方法でも紹介していますよ。
初めてのExcelマクロを作る手順
ここからは、実際にマクロを作る手順を5ステップで説明します。プログラミング未経験でも大丈夫ですよ。
開発タブを表示する
Excelの初期設定では「開発」タブが非表示です。まずはこれを表示させましょう。
- 「ファイル」→「オプション」をクリック
- 「リボンのユーザー設定」を選択
- 右側の一覧で「開発」にチェックを入れる
- 「OK」をクリック
これでリボンに「開発」タブが表示されます。詳しい手順は開発タブを表示する方法を参照してください。
VBE(Visual Basic Editor)を開く
VBE(Visual Basic Editor)はVBAコードを書くための専用画面です。以下の方法で開けます。
- 「開発」タブ →「Visual Basic」をクリック
- ショートカットキー:
Alt + F11
VBEが開くと、左側に「プロジェクトエクスプローラー」が表示されます。ここにブックやシートの一覧が並んでいますよ。
標準モジュールを追加する
VBAコードは「標準モジュール」に書きます。追加の手順は次のとおりです。
- VBEのメニューから「挿入」→「標準モジュール」をクリック
- 右側にコード入力画面が表示される
この白い画面にコードを書いていきます。
コードを入力して実行する
試しに、メッセージを表示するコードを書いてみましょう。
Sub はじめてのマクロ()
MsgBox "Hello VBA!"
End Sub
Sub から End Sub までが1つのマクロです。入力できたら、以下の方法で実行します。
- カーソルをコードの中に置く
F5キーを押す(または「実行」→「Sub/ユーザーフォームの実行」)
「Hello VBA!」というメッセージが表示されたら成功です。
マクロ有効ブック(.xlsm)で保存する
マクロを含むファイルは、通常の .xlsx 形式では保存できません。「マクロ有効ブック(.xlsm)」で保存する必要があります。
- 「ファイル」→「名前を付けて保存」をクリック
- ファイルの種類で「Excelマクロ有効ブック(*.xlsm)」を選ぶ
- 「保存」をクリック
.xlsx のまま保存すると、マクロが消えてしまいます。ファイル形式の詳しい違いはVBAのファイル形式で解説していますよ。
よく使うVBAコード10選
ここからは、実務でよく使うVBAコードを10個紹介します。コピーしてVBEに貼り付ければ、すぐに試せます。
1. セルに値を入力する
Sub セルに入力()
Range("A1").Value = "売上データ"
Range("B1").Value = 10000
End Sub
Rangeの使い方でセル指定の基本を学べます。Cellsを使った指定方法もあるので、RangeとCellsの違いもあわせて確認してみてください。
2. セルの値を別のセルにコピーする
Sub セルをコピー()
Range("A1").Copy Destination:=Range("B1")
End Sub
Copy メソッドに Destination を指定すると、貼り付け先を直接選べます。
3. 最終行を取得する
Sub 最終行を取得()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
MsgBox "最終行は " & lastRow & " 行目です"
End Sub
データの末尾を自動で見つける定番コードです。詳しくはVBA最終行の取得で3つの方法を比較しています。
4. 指定範囲をクリアする
Sub 範囲をクリア()
Range("A1:D10").ClearContents
End Sub
ClearContents は値だけを消します。書式も含めて消したい場合は Clear を使ってください。
5. メッセージボックスを表示する
Sub メッセージ表示()
MsgBox "処理が完了しました"
End Sub
処理の完了通知や確認ダイアログに使います。ユーザーに状況を伝えるのに便利ですよ。
6. 条件によって処理を変える(If文)
Sub 条件分岐()
If Range("A1").Value >= 100 Then
MsgBox "100以上です"
Else
MsgBox "100未満です"
End If
End Sub
If...Then...Else で条件によって処理を切り替えられます。詳しい使い方はVBA If文の使い方で解説していますよ。
7. 同じ処理を繰り返す(For文)
Sub 繰り返し処理()
Dim i As Long
For i = 1 To 10
Cells(i, 1).Value = i
Next i
End Sub
A1からA10まで連番を入力するコードです。For...Next 文の基本はVBA For~Next文の使い方で詳しく学べます。
8. セルの書式を変更する
Sub 書式変更()
Range("A1").Font.Bold = True
Range("A1").Font.Color = RGB(255, 0, 0)
Range("A1").Interior.Color = RGB(255, 255, 200)
End Sub
太字・文字色・背景色をコードで設定できます。手作業で何十セルも書式設定するより、ずっと速いですよ。
9. シートを追加・名前を変更する
Sub シート追加()
Worksheets.Add After:=ActiveSheet
ActiveSheet.Name = "集計用"
End Sub
新しいシートを追加して、名前を付けるコードです。月次レポートの自動作成などで活躍します。
10. ファイルを保存して閉じる
Sub 保存して閉じる()
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub
処理の最後にファイルを保存して閉じるパターンです。複数ファイルの一括処理で重宝しますよ。
マクロ作成で失敗しないコツ3つ
VBA初心者がつまずきやすいポイントと対策を紹介します。
Option Explicitで変数を宣言する
コードの先頭に Option Explicit を書くと、変数の宣言が必須になります。
Option Explicit
Sub サンプル()
Dim total As Long
total = 100
MsgBox total
End Sub
変数名のタイプミスをコンパイル時に検出できます。バグの予防に効果的です。設定方法はOption Explicitの使い方を参照してください。
変数の種類やデータ型について詳しく知りたい方は、VBA変数の使い方もあわせてどうぞ。
まずはマクロの記録から始める
コードの書き方がわからないときは、「マクロの記録」を活用しましょう。Excelの操作を記録して、VBAコードに変換してくれる機能です。
- 「開発」タブ →「マクロの記録」をクリック
- 自動化したい操作を手動で行う
- 「記録終了」をクリック
記録されたコードをVBEで確認すれば、書き方の参考になります。詳しくはマクロの記録の使い方で手順を解説していますよ。
エラーが出たらデバッグする
VBAのコードにエラーはつきものです。エラーが出ても慌てないでください。
- コンパイルエラー: コードの文法ミス。赤字で表示される箇所を修正する
- 実行時エラー: 実行中に発生。「デバッグ」ボタンで問題箇所が黄色くハイライトされる
F8 キーを押すと、コードを1行ずつ実行できます。どこで問題が起きているか特定しやすくなりますよ。
もしマクロが止まらなくなった場合は、マクロが止まらない時の強制終了を参考にしてください。
まとめ
この記事では、Excel VBAマクロの作り方を初心者向けに解説しました。
この記事のポイント
- VBAはマクロを動かすプログラミング言語。マクロは操作を自動化する仕組み
- 開発タブの表示 → VBE起動 → モジュール追加 → コード入力 → .xlsmで保存の5ステップで始められる
- よく使うコード10選を覚えれば、実務の自動化がすぐに始められる
Option Explicitと「マクロの記録」を活用すれば、初心者でもミスを減らせる
関連記事
VBAの基礎を身につけたら、次のステップに進んでみましょう。
