Excelマクロは「プログラマーだけのもの」ではありません。マクロの記録機能を使えば、普段の操作をそのまま自動化できます。本記事では、マクロの仕組みから「開発」タブの表示、マクロの記録、VBAコードの読み方・修正方法、ボタンへの割り当て、相対参照と絶対参照の違い、ファイルの保存形式、セキュリティ設定まで、初心者が押さえるべきポイントを体系的にまとめています。
マクロとは何か? どんな業務を自動化できるのか
Excelマクロとは、Excelの操作手順を記録して、ワンクリックで再実行できる機能です。裏側ではVBA(Visual Basic for Applications)というプログラミング言語が動いていますが、「マクロの記録」機能を使えば、コードを自分で書かなくても自動化を始められます。
たとえば月末に毎回やっている「売上データを貼り付けて、列を並べ替えて、合計行を追加して、書式を整える」という一連の作業。これをひとつのマクロとして記録しておけば、次回からはボタンを1回押すだけで完了します。30分かかっていた作業が1分以内に終わる、というのが現実的な目標ラインです。
マクロで自動化できる業務の例
どんな作業がマクロに向いているのか、具体的な例と目安の時間で見てみましょう。

| 業務内容 | 手動の所要時間 | マクロ利用時 |
|---|---|---|
| 月次レポートの書式統一 | 30分 | 1分 |
| データの並べ替え・フィルター | 15分 | 数秒 |
| 複数シートへのデータ転記 | 45分 | 2分 |
| 定型メールの下書き作成 | 20分 | 1分 |
| グラフの自動作成 | 20分 | 数秒 |
マクロが特に効果を発揮するのは「同じ手順を毎回繰り返す作業」です。週次・月次でほぼ同じ操作をしているなら、それはほぼ間違いなくマクロ化できます。逆に、内容が毎回大きく変わる作業や、判断を伴う複雑な分析には向きません。「繰り返しているかどうか」を基準にマクロ化の候補を選びましょう。
初めてマクロを作るなら、「貼り付けた後に値のみ貼り付けに直す」「特定の列を非表示にする」「ヘッダー行に色をつける」といった、3〜5ステップ程度の小さな作業から始めるのがおすすめです。小さく始めて動いた喜びを感じることが、継続の近道です。
「開発」タブの表示方法
マクロを使うには、まずExcelのリボンに「開発」タブを表示する必要があります。初期設定では非表示になっているため、以下の手順で有効にしましょう。
- 「ファイル」メニュー → 「オプション」をクリック
- 左メニューから「リボンのユーザー設定」を選択
- 右側の一覧で「開発」にチェックを入れる
- 「OK」をクリックして完了
Macの場合は、メニューバーの「Excel」→「環境設定」→「リボンとツールバー」から同様に設定できます。一覧の中に「開発」が見つからない場合は、右側のカスタムタブ・グループのリストを確認してください。
「開発」タブが表示されると、以下のようなボタンが使えるようになります。
- マクロの記録 … 操作を自動的にVBAコードとして記録する
- マクロ … 保存済みマクロの一覧表示・実行・削除
- Visual Basic … VBAエディター(VBE)を開く
- マクロのセキュリティ … 実行許可の設定
- 挿入 … シート上にボタンやフォームコントロールを配置する
「開発」タブを表示する設定は、Excelを閉じてもリセットされません。一度設定しておけば、以降ずっとリボンに表示されたままです。同僚のPCで作業する際は、相手のExcelにも同じ設定が必要な点だけ注意しておきましょう。
マクロの記録で操作を自動化する
マクロの記録は、Excelの操作をそのままVBAコードに変換してくれる便利な機能です。プログラミングの知識がなくても、画面上で行った操作がそのまま記録されます。ここでは「データを貼り付けた後、値のみに変換する」という実務でよく使う操作を例に、手順を説明します。
マクロ記録の基本手順
- ステップ1 「開発」タブ → 「マクロの記録」をクリック
- ステップ2 マクロ名を入力(例: 値貼り付け)し、必要ならショートカットキーを設定して「OK」をクリック(記録開始)
- ステップ3 自動化したい操作を通常どおり実行する(例: A1:D10を選択 → Ctrl+C → Ctrl+Alt+V → 「値」を選択 → OK)
- ステップ4 「開発」タブ → 「記録終了」をクリック(またはステータスバーの■ボタン)
- ステップ5 「開発」タブ → 「マクロ」→ マクロ名を選択 → 「実行」で動作確認
記録時に気をつけたいこと
記録中はすべての操作がコードに変換されます。余計なクリックやセル選択のやり直しも記録されるので、記録を開始する前に手順を頭の中で整理しておくと、きれいなコードが生成されます。
- 記録前に「どの順番で何をするか」を一度手でやってみて確認しておく
- Ctrl+Z(元に戻す)を使うと取消操作も記録されてしまう。間違えたら記録を停止してやり直す
- スクロール操作は記録されないが、不要なセルを選択すると余計なコードが増える
- 記録後は必ず「実行」してみて、意図通りに動くか確認する
実務シナリオ:毎月の売上データ整形を自動化する
月次の売上レポート作業を例に、マクロがどれだけ効果的か見てみましょう。
自動化前の手順(毎月手作業)
- 新しいデータをA列から貼り付ける
- 貼り付け直後に「値のみ貼り付け」に変換する(数式が壊れないように)
- 1行目にヘッダーを追加して背景色を #2A5772 にする
- B列の数値に桁区切り書式を設定する
- 最終行に合計行を追加してSUM関数を入力する
5つの操作を毎月繰り返している場合、記録開始からこの手順を実行して記録を終了するだけで、次月からはワンクリックで完了します。作業にかかる時間が15〜20分から数十秒に短縮されます。
「もしA列が空欄だったら処理をスキップする」のような条件分岐や、「データがある行数分だけ繰り返す」といったループ処理は、記録だけでは対応できません。これらはVBAを直接編集する必要があります。記録したマクロをVBEで開いて少し手を加えるだけで対応できるケースも多く、後述の「マクロの編集と修正」で説明します。
相対参照と絶対参照の記録
マクロの記録には「絶対参照で記録」と「相対参照で記録」の2つのモードがあります。この違いを知らずに記録すると、「あるセルでは動くのに別のセルでは動かない」という落とし穴にはまってしまいます。初心者がつまずきやすいポイントなので、しっかり理解しておきましょう。
絶対参照で記録(デフォルト)
標準設定では「絶対参照で記録」モードになっています。この状態でマクロを記録すると、操作したセルの位置(例: B3)がコードに直接書き込まれます。
たとえばB3を選択して太字にした操作を記録すると、コードは Range("B3").Font.Bold = True のようになります。後でどのセルを選択した状態でマクロを実行しても、必ずB3が太字になります。
絶対参照が向いている用途
- 毎回決まったセル位置に対して処理をする(例: ヘッダー行の書式設定、合計行の挿入)
- 固定のテンプレートを操作するマクロ
- 特定のシートの決まった範囲を初期化するマクロ
相対参照で記録
「開発」タブの「相対参照で記録」ボタンをオンにしてから記録を開始すると、現在選択しているセルを起点とした相対位置がコードに記録されます。
たとえば、現在のセルから1列右に移動してデータを入力する操作を記録した場合、コードは「今いるセルから1つ右に移動して入力する」という相対的な指示になります。どのセルを選択した状態でマクロを実行しても、「現在地から1つ右」に入力が行われます。
相対参照が向いている用途
- 行ごとに同じ操作を繰り返す(例: 各行のC列に決まった値を入力する)
- 現在選択中のセルを基準に隣のセルや下のセルを操作する
- 複数のセルを順番に処理していくマクロ
記録中に「相対参照で記録」ボタンをオン・オフ切り替えることで、一部の操作を絶対参照、別の操作を相対参照で記録することができます。たとえば「まず固定のヘッダー行(絶対)を書式設定してから、現在のセル(相対)から下のデータを処理する」というマクロを作るときに便利です。慣れてきたら試してみてください。
「記録したときは動いたのに、別の場所で実行したら違う結果になった」というトラブルの多くは、絶対参照で記録したマクロを別のセルで実行したことが原因です。マクロを記録する前に、どちらのモードで記録するかを意識する習慣をつけましょう。
VBAコードの読み方と基本構造
マクロを記録すると、裏側ではVBAコードが自動生成されます。最初は読む必要はありませんが、「このマクロが何をしているか」を確認できるようになると、修正も怖くなくなります。まずはコードの基本的な形を見てみましょう。

VBAコードの基本形
VBAのマクロは必ず Sub マクロ名() で始まり、End Sub で終わります。この2行の間に処理内容が書かれています。
‘ — 選択範囲をコピーして値のみ貼り付け —
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues
‘ — 1行目のヘッダーを太字・背景色に設定 —
Rows(“1:1”).Font.Bold = True
Rows(“1:1”).Interior.Color = RGB(42, 87, 114)
Rows(“1:1”).Font.Color = RGB(255, 255, 255)
‘ — B列に桁区切り書式を適用 —
Columns(“B:B”).NumberFormat = “#,##0”
End Sub
コードを読むときのポイントは3つです。Range(“A1”) はセルA1の指定、.Value はその値、.Font.Bold = True は太字設定です。「オブジェクト(何を)→ プロパティ(どの属性を)→ 値(どう設定するか)」という構造で読むと理解しやすくなります。
よく見かけるVBAの書き方
| コード例 | 意味 |
|---|---|
| Range(“A1”).Value = “売上” | A1セルに「売上」という文字を入力する |
| Range(“A1”).Font.Bold = True | A1セルのフォントを太字にする |
| Range(“A1:D10”).ClearContents | A1からD10の内容を消去する(書式は残す) |
| ActiveSheet.Name = “月次レポート” | 現在のシート名を「月次レポート」に変更する |
| Rows(“1:1”).Delete | 1行目を削除する |
| Columns(“B:B”).AutoFit | B列の幅をデータに合わせて自動調整する |
記録で生成されたコードには不要な記述が多く含まれることがありますが、それを気にする必要はありません。動いているうちは触らなくて問題ありません。
マクロの編集と修正
記録したマクロが「少し違う動きをしている」「条件を変えたい」と感じたとき、VBE(Visual Basic Editor)でコードを直接修正できます。プログラミングの経験がなくても、生成されたコードを少し変える程度なら十分対応できます。
VBEの開き方
VBAのコードを確認・編集するには、VBE(Visual Basic Editor)を使います。
- 「開発」タブ → 「Visual Basic」をクリック
- またはキーボードショートカット Alt + F11(Macでは Option + F11)
VBEが開いたら、左側のプロジェクトエクスプローラーで「標準モジュール」→「Module1」をダブルクリックすると、記録されたマクロのコードが表示されます。
よくある修正パターン
記録後にVBEで手を加えることが多い箇所をいくつか紹介します。難しいプログラミングではなく、数字や文字列を置き換えるだけの修正が大半です。
修正例1 固定のセル範囲を変更する
記録時に “A1:D10” と書かれたコードを “A1:D100” に変更するだけで、より広い範囲に対応できます。セル範囲を示す文字列を探して書き換えるだけです。
修正例2 不要な行を削除してコードをすっきりさせる
記録で生成されたコードには、選択状態の管理などの余分な行が多く含まれます。動作に影響しない Selection.Select のような行を削除すると、コードが読みやすくなります。削除した後に実行して動作確認するクセをつけましょう。
修正例3 メッセージボックスで確認を入れる
重要なデータを消すようなマクロには、実行前に確認ダイアログを表示すると安心です。
Dim result As Integer
result = MsgBox(“A列のデータを初期化しますか?”, vbYesNo + vbQuestion)
If result = vbYes Then
Range(“A2:A1000”).ClearContents
MsgBox “初期化が完了しました。”
End If
End Sub
上のコードは「はい/いいえ」の確認ダイアログを表示し、「はい」を選んだ時だけデータを消す処理です。こういった小さな修正を重ねていくことで、少しずつVBAへの理解が深まっていきます。
VBEでコードを編集する前に、ファイルを別名でコピーしておくと安心です。変更を元に戻すにはVBEでCtrl+Z(Mac: ⌘+Z)が使えますが、ファイルを閉じると履歴がリセットされます。「動いていたバージョン」を残しておく習慣は、後々助かる場面があります。
マクロをボタンに割り当てる
作ったマクロを毎回「開発タブ → マクロ → 実行」と辿るのは面倒です。シート上にボタンを配置しておけば、Excelに不慣れな同僚でも迷わずマクロを実行できます。これがマクロを「業務で本当に使える状態」にする最後の一歩です。
シート上にボタンを配置する手順
- ステップ1 「開発」タブ → 「挿入」をクリック
- ステップ2 「フォームコントロール」の一覧から「ボタン(フォームコントロール)」を選択(長方形のアイコン)
- ステップ3 シート上でドラッグしてボタンを描画する
- ステップ4 「マクロの登録」ダイアログが開くので、割り当てたいマクロ名を選択して「OK」
- ステップ5 ボタンを右クリック → 「テキストの編集」でボタン名を変更(例: 「実行」「書式整形」など)
ボタンを配置した後は、そのボタンをクリックするだけでマクロが実行されます。Excelの操作に不慣れな人でも、「このボタンを押してください」と伝えるだけで使ってもらえるようになります。
ボタン配置の実務活用
実務でよく使われるボタン配置のパターンをいくつか紹介します。
| ボタン名の例 | 割り当てるマクロの処理内容 | 想定する利用者 |
|---|---|---|
| データ更新 | 外部からコピーしたデータを整形・書式統一する | 毎月レポートを更新する担当者 |
| 印刷用に整形 | 不要な列を非表示にし、印刷範囲を設定する | 月末に帳票を印刷する人 |
| シートを初期化 | 入力欄の値をすべてクリアしてテンプレート状態に戻す | 毎週同じシートを使い回す担当者 |
| PDF出力 | 特定のシートをPDF形式でデスクトップに保存する | 資料を上司に提出する担当者 |
ショートカットキーへの割り当て
ボタンを使わずに、キーボードショートカットでマクロを実行することもできます。「開発」タブ → 「マクロ」→ マクロ名を選択 → 「オプション」をクリックすると、Ctrl+任意のキーの組み合わせを設定できます。自分だけが使うマクロはショートカットキーの方が便利な場合もあります。
Ctrl+C やCtrl+V などExcel標準のショートカットと同じキーを設定すると、そのキーがマクロに乗っ取られてしまいます。マクロ用に割り当てるキーは、Ctrl+Shift+任意のキーなど、普段使わない組み合わせにしておくと安全です。
マクロ付きファイルの保存形式
マクロを含むExcelファイルは、通常の「.xlsx」形式では保存できません。保存形式を間違えるとマクロが消えてしまうため、正しい形式を理解しておくことが重要です。初めてマクロを作ったときに、保存しようとすると警告ダイアログが表示されて戸惑う人が多いですが、指示に従って形式を変更するだけです。

| 拡張子 | 名称 | マクロ | 用途 |
|---|---|---|---|
| .xlsx | Excelブック | 保存不可 | 通常のExcelファイル |
| .xlsm | マクロ有効ブック | 保存可能 | マクロを使うファイル(標準) |
| .xlsb | バイナリブック | 保存可能 | 大容量ファイル向け |
| .xltm | マクロ有効テンプレート | 保存可能 | マクロ入りのテンプレートを配布する場合 |
.xlsmで保存する手順
- Ctrl+S(またはファイル → 上書き保存)を押す
- 「マクロを含まない形式で保存しますか?」という警告が出たら「いいえ」を選ぶ
- 「名前を付けて保存」ダイアログが開くので、「ファイルの種類」を「Excelマクロ有効ブック (*.xlsm)」に変更する
- ファイル名を確認して保存
一度.xlsm形式で保存すれば、次回からCtrl+Sを押すだけで上書き保存できます。ファイル名の末尾が「.xlsm」になっていれば、マクロが正しく保存されています。
警告ダイアログで「はい」を押してしまうと、マクロが削除された状態で.xlsx形式で保存されます。次にファイルを開いたときにマクロがなくなっていて慌てる、というのはよくあるパターンです。警告が出たら必ず「いいえ」を選んで.xlsm形式で保存し直してください。
- マクロを使わないファイル → .xlsx(安全性が高く、受け取り側も安心)
- マクロを使うファイル → .xlsm(最もよく使われる標準形式)
- 大量データ+マクロ → .xlsb(ファイルサイズが小さく動作も速い)
マクロのセキュリティ設定
マクロは便利な反面、悪意のあるコードを実行してしまうリスクもあります。Excelにはマクロの実行を制御するセキュリティ設定があり、適切なレベルを選ぶことが大切です。

| セキュリティレベル | 動作 | 推奨度 |
|---|---|---|
| すべてのマクロを無効にする | マクロは一切実行されない | セキュリティ最重視の環境向け |
| 警告を表示してマクロを無効にする | 都度確認してから実行 | ★ 推奨(一般的な職場向け) |
| デジタル署名付きのみ有効 | 署名済みマクロだけ実行 | 企業のIT管理者が設定する |
| すべてのマクロを有効にする | すべて自動実行 | 非推奨(セキュリティリスク大) |
セキュリティ設定の変更手順
- 「開発」タブ → 「マクロのセキュリティ」をクリック
- 「トラストセンター」が開くので「マクロの設定」を選択
- 「警告を表示してすべてのマクロを無効にする」を選ぶ
- 「OK」をクリックして反映
黄色いセキュリティ警告バーが出たときの対処
推奨設定にしておくと、.xlsmファイルを開いたときに画面上部に黄色いバーが表示されます。これは「このファイルにマクロが含まれています。実行しますか?」という確認です。
- 自分や信頼できる同僚が作ったファイルなら → 「コンテンツの有効化」をクリックしてマクロを実行可能にする
- 送り主が不明なファイルや、予期せず受け取ったファイルなら → クリックせずにそのまま使う(マクロが実行されない状態でデータだけ確認できる)
特定のフォルダ(例: 社内の共有フォルダや自分のデスクトップ)を「信頼できる場所」として登録すると、そのフォルダ内の.xlsmファイルを開いたときはセキュリティ警告が表示されなくなります。「トラストセンター」→「信頼できる場所」から追加できます。毎日使う自作のマクロファイルは、ここに登録しておくと手間が省けます。
メールの添付ファイルやインターネットからダウンロードした.xlsmファイルは、マクロの内容を確認せずに「コンテンツの有効化」を押さないでください。不正なマクロが個人情報の流出やウイルス感染を引き起こす可能性があります。送り主に心当たりがない場合は、まずITセキュリティ担当者に確認することをおすすめします。
マクロ活用のよくある疑問
マクロとVBAの違いは?
「マクロ」は操作の自動化全般を指す言葉で、「VBA」はその裏側で動くプログラミング言語の名前です。「マクロの記録」で生成されるコードがVBAであり、VBAを直接書くことでより高度な自動化が可能になります。ビジネスの会話では「マクロ」という言葉でVBAプログラムのことを指すのが一般的です。
他の人にマクロ付きファイルを共有しても大丈夫?
.xlsm形式で保存すればマクロごと共有できます。ただし、受け取った側のセキュリティ設定によってはマクロが無効化される場合があります。共有先には「ファイルを開いたら黄色いバーが出るので、コンテンツの有効化をクリックしてください」と伝えましょう。
マクロはどこに保存される?
マクロの記録時に保存先を選べます。
- 作業中のブック … そのファイルにだけ保存される(ファイルを共有すればマクロも一緒に渡せる)
- 個人用マクロブック … 自分のPC内の特定ファイル(Personal.xlsb)に保存され、どのExcelファイルからでも呼び出せる(共有は不可)
「個人用マクロブック」は、どのファイルを開いているときでも使えるマクロ(例: よく使う書式整形)を保存するのに向いています。「作業中のブック」は、そのファイルに特化したマクロに使います。
記録したマクロをどのシートでも使えるようにしたい
VBEで「標準モジュール」(Module1)に記録されたマクロは、ブック内のすべてのシートから呼び出せます。特定のシートにだけ関連付けるには、VBEのシートオブジェクト(例: Sheet1)にコードを書きますが、記録したマクロを使い回す場合はほとんど標準モジュールで問題ありません。
マクロを削除するには?
「開発」タブ → 「マクロ」→ 削除したいマクロを選択 → 「削除」で消去できます。また、VBEからモジュールごと削除することもできます。不要になったマクロが増えてくると管理が大変になるので、使わなくなったものは都度整理しておくとすっきりします。
マクロの記録に慣れてきたら、VBAの基本構文(変数の使い方、For Each文でデータを1行ずつ処理する方法など)を少しずつ学んでみましょう。「記録で自動化できるのはここまで」という壁にぶつかったとき、VBAの知識があると一気に可能性が広がります。参考書やネット上の解説も豊富なので、まずは気になったコードを検索しながら試してみることが一番の近道です。
はてなベース株式会社では、Excel業務の自動化支援やDXコンサルティングを提供しています。「マクロで何ができるかわからない」「自社の業務に合った自動化を相談したい」といったお悩みも、お気軽にご相談ください。