エクセルで毎月繰り返している請求書作成、月次レポートの書式設定、シート名の一括変更。こうしたルーチン作業は、マクロを使えばボタン一つで自動化できます。この記事では、プログラミング知識ゼロでもマクロを作れる「マクロの記録」機能を中心に、基本の作成手順から「実行できない」トラブルの切り分けまで、Microsoft公式の手順に沿って解説します。
目次
エクセルで毎月繰り返している請求書作成、月次レポートの書式設定、シート名の一括変更。こうしたルーチン作業は、マクロを使えばボタン一つで自動化できます。この記事では、プログラミング知識ゼロでもマクロを作れる「マクロの記録」機能を中心に、基本の作成手順から「実行できない」トラブルの切り分けまで、Microsoft公式の手順に沿って解説します。
エクセルのマクロでできることは?ビジネスでの活用シーン
マクロとは、エクセル上の一連の操作を記録し、自動的に再実行できる機能です。具体的には、次のようなビジネスシーンで威力を発揮します。
- 月次の請求書発行:取引先別の請求書テンプレートを連続出力する作業を、ボタン一つで完了
- レポートの書式統一:複数シートに散らばった数値を、同じ書式(色・フォント・罫線)で一括整形
- データの集計と転記:複数の入力シートから集計シートへ、決まったセルの値を自動転記
- シート操作の自動化:毎月新しいシートを作って前月の枠だけコピーする作業を自動化
- 入力ミスのチェック:必須項目の空欄や、規定外の値を自動で抽出
「毎週・毎月、同じ手順で繰り返している作業」がある人ほど、マクロの効果は大きくなります。
混同されがちな「VBA(Visual Basic for Applications)」は、マクロを動かすためのプログラミング言語の名称です。エクセルには「マクロの記録」という機能があり、操作を記録するだけで自動的にVBAコードが生成されるため、プログラミングを学ばなくても基本的な自動化が可能となっています。一方で、条件分岐や繰り返し処理など複雑なロジックを組み込みたい場合は、VBAでコードを直接書く必要があります。
両者の使い分けは次の表が目安です。
| 用途 | 記録機能で十分 | VBAコード記述が必要 |
| セルの書式設定を一括適用 | ◯ | – |
| 決まったシートをコピーして名前を変更 | ◯ | – |
| 条件によって処理を分岐させる | × | ◯ |
| 大量のファイルを一括処理する | × | ◯ |
| 入力値に応じてダイアログを表示する | × | ◯ |
まずは記録機能でマクロの感覚をつかみ、限界を感じたタイミングでVBAに進むのが現実的な順序となります。なお、マクロで自動化する前に対象の表を整えておくと、記録の精度が高まるので別の記事を参考にしてください(エクセル表の作り方)。
エクセルでマクロを使うために必要な「開発」タブを表示する(Win/Mac両対応)
マクロを本格的に扱うには、リボンに「開発」タブを表示させる必要があります。初期状態では非表示になっているため、最初に設定しておきましょう。
Windowsの場合
- 「ファイル」タブをクリックする
- 「オプション」を選択する
- 「リボンのユーザー設定」を選択する
- 右側のメインタブ一覧で「開発」にチェックを入れる
- 「OK」をクリックする
Macの場合
- メニューバーの「Excel」から「環境設定」を開く
- 「リボンとツールバー」を選択する
- 「リボンのカスタマイズ」セクションのメインタブで「開発」にチェックを入れる
- 「保存」をクリックする
参考:Microsoft サポート「Excel でマクロを実行する」

開発タブが表示されていなくても、VBE(Visual Basic Editor)はショートカットキーで起動できます。Windowsは「Alt」+「F11」、Macは「Option」+「F11」です。コンパクトキーボードの場合は「Fn」を併用する必要がある点に注意してください。
エクセルでマクロを「記録機能」で作る基本手順
「マクロの記録」は、エクセル上で行った操作をそのままVBAコードに変換してくれる機能です。プログラミング知識ゼロでも、操作するだけでマクロが完成します。
マクロの記録ダイアログを設定する
「開発」タブの「マクロの記録」をクリックすると、設定ダイアログが表示されます。入力する項目は次のとおりです。
- マクロ名:先頭は文字、以降は文字・数字・アンダースコアのみ使用可能。スペースは使えない
- ショートカットキー:任意。「Ctrl+Z」など既存のショートカットと重なると上書きされてしまうため、「Ctrl+Shift+大文字」の組み合わせが推奨される
- マクロの保存先:通常は「作業中のブック」。エクセル起動時から常時使いたい場合は「個人用マクロブック」を選択
- 説明:任意。後から見返すためのメモ
参考:Microsoft サポート「マクロ記録で作業を自動化する」

操作を記録して停止する
ダイアログで「OK」を押した瞬間から、ステータスバー左下の「記録停止」アイコンが表示され、すべての操作が記録され始めます。
- 自動化したい操作を実際に行う(セル選択、書式変更、コピー&ペーストなど)
- 操作が完了したら、「開発」タブの「記録停止」をクリック
ステータスバー左下の「記録停止」アイコンからも停止が可能です。なお、シートのコピーを伴うマクロを作る場合は、手動でのシートコピー操作も理解しておくと記録結果を読み解きやすくなります(エクセルでシートをコピーする方法)。

記録機能で対応できない操作の限界
便利な記録機能ですが、すべてが記録できるわけではありません。以下のような処理は記録対象外、あるいは記録しても期待通りに動かない場合があります。
- 「セルの値が100以上なら赤字、未満なら青字」といった条件分岐
- 「全シートに同じ処理を繰り返す」といった反復処理
- セル範囲を相対参照で扱う際の柔軟な指定
- 外部ファイルの動的な読み込み
こうした処理を実現したい場合は、VBAで直接コードを書く必要があります。
エクセルでマクロを保存する場合は「.xlsm」形式で保存
マクロを含むブックを通常の「.xlsx」形式で保存すると、マクロが破棄されてしまいます。マクロを残すには、必ず「Excel マクロ有効ブック(.xlsm)」形式で保存してください。
- 「ファイル」→「名前を付けて保存」を選択する
- ファイルの種類で「Excel マクロ有効ブック(*.xlsm)」を選択する
- 任意の名前を入力して保存する
エクセル起動時から常時マクロを使いたい場合は、保存先を「個人用マクロブック」にしておくと、Personal.xlsbという隠しブックに保存され、どのブックからでも呼び出せるようになります。
参考:Microsoft サポート「単一のブックにすべてのマクロを作成して保存する」

エクセルでマクロを実行する3つの方法
作成したマクロは、用途に応じて複数の方法で実行できます。
方法1:開発タブから実行する
「開発」タブの「マクロ」をクリックし、一覧から実行したいマクロ名を選択して「実行」を押せば動きます。最も基本的な方法です。
方法2:ショートカットキーで実行する
マクロ作成時にショートカットキーを割り当てておけば、キー押下だけで実行できます。Windowsは「Ctrl+指定文字」、Macは「Option+Command+指定文字」が基本です。
方法3:シート上のボタンに割り当てて実行する
毎回「開発」タブを開かずに済む、業務利用で最も実用的な方法となります。
- 「開発」タブの「挿入」をクリックする
- 「フォームコントロール」から「ボタン」を選択する
- シート上の任意の位置をドラッグして配置する
- 「マクロの登録」ダイアログで割り当てるマクロを選択し、「OK」をクリック
- ボタンを右クリックして名前を任意のラベルに変更する
参考:Microsoft サポート「ボタンにマクロを割り当てる」

VBAでマクロを直接書く(応用編)
ここからは応用編です。記録機能の限界を超えた処理を実現したい場合は、VBE(Visual Basic Editor)でコードを直接書きます。VBEはエクセル本体とは別のウィンドウで動く専用エディタです。
VBEを起動して標準モジュールを追加する
- 「開発」タブの「Visual Basic」をクリック(または「Alt+F11」/Macは「Option+F11」)
- 左側のプロジェクトエクスプローラーで対象のブック名を右クリック
- 「挿入」→「標準モジュール」を選択
- 右側のコードウィンドウに新規モジュールが追加される

コード例1:メッセージボックスを表示する
最も基本的なコードです。実行すると「こんにちは」と表示されます。
Sub HelloMacro()
MsgBox “こんにちは”
End Sub
Subはマクロの開始を表すキーワードで、続くHelloMacroがマクロ名となります。中央のMsgBox “こんにちは”が「メッセージボックスに『こんにちは』と表示する」という命令です。最後のEnd Subでマクロの終了を示します。
コード例2:選択範囲の背景色を黄色に変える
実務でよく使うシンプルなコード例です。
Sub HighlightSelection()
Selection.Interior.Color = RGB(255, 255, 0)
End Sub
Selectionは現在選択しているセル範囲、Interior.Colorはその背景色を指すプロパティです。RGB(255, 255, 0)は赤・緑・青の値を0〜255で指定する関数で、この例では黄色になります。任意のセルを選択した状態でマクロを実行すると、その範囲が黄色く塗られます。
書いたコードを実行するには、コード内のどこかにカーソルを置いた状態で「F5」キーを押すか、メニューの「実行」→「Sub/ユーザーフォームの実行」を選びます。
なお、Excel for MacのVBEには日本語入力の挙動に既知の課題があり、コメントや日本語文字列の入力時に不便を感じる場面があります。Macで本格的にVBAを書く場合は、別エディタで下書きしてからVBEに貼り付ける運用も一つの方法です。
エクセルで「マクロが実行できない」よくある原因と対処
マクロが動かないとき、原因は大きく5つに分類できます。それぞれの切り分け方を解説します。
原因1:「開発」タブが表示されていない
最も初歩的な原因です。本記事冒頭の「準備」セクションを参照して、開発タブをリボンに表示させてください。
原因2:拡張子が「.xlsx」のまま保存されている
「.xlsx」はマクロを保存できない形式となります。マクロを含めて保存したい場合は、必ず「.xlsm」(Excel マクロ有効ブック)として保存し直してください。一度「.xlsx」で保存してしまうとマクロは消えてしまい、復元できません。
原因3:MOTW(Mark of the Web)によるブロック
2022年以降、Microsoftはセキュリティ強化のため、インターネットから入手したマクロを既定でブロックする仕様に段階的に変更しました。VBAマクロは、悪意のある第三者がマルウェアやランサムウェアを展開する経路として悪用されるケースが多く、そのリスクを下げるための変更となります。
メール添付やWebダウンロードで取得した.xlsmファイルを開くと、画面上部に「セキュリティリスク:このファイルのソースが信頼できないため、Microsoftによりマクロの実行がブロックされました」という赤い警告バーが表示されます。
参考:Microsoft Learn「インターネットからのマクロは、Office で既定でブロックされます」

このブロックを解除するには、次のいずれかの方法を取ります。
- ファイル個別のブロック解除:エクスプローラーで該当ファイルを右クリック→「プロパティ」→「全般」タブの最下部「セキュリティ:許可する」にチェック→「OK」
- 信頼できる場所への追加:ファイル → オプション → トラストセンター → 信頼できる場所 → 新しい場所の追加 → ファイル格納フォルダを指定
なお、このMOTWによるマクロブロックの仕様変更は、Windows版のOfficeにのみ適用される動作です。Mac版エクセルや、AndroidやiOSデバイスのOffice、Office on the webでは発生しません。
原因4:トラストセンターでマクロが無効化されている
ファイル → オプション → トラストセンター → トラストセンターの設定 → マクロの設定 を確認します。「警告を表示してすべてのマクロを無効にする」が既定値で、初回実行時にコンテンツの有効化を促されます。社内ポリシーで「警告を表示せずにすべてのマクロを無効にする」が強制されている場合は、IT管理者への相談が必要です。
原因5:Mac特有の挙動
Mac版エクセルでは、Windows版で動作するマクロの一部が動かないケースがあります。Windowsのファイルシステムに依存するコードや、ActiveXコントロールを使った処理などが代表例です。Windows・Mac両方で動かしたい場合は、#If Mac Then などの条件分岐コードで切り分けるのが定石となります。
シート保護やテーブル機能と組み合わせてマクロを動かしているケースで止まる場合、保護解除やテーブル解除が原因となっていることもあります(エクセルのシート保護解除 / エクセルのテーブル解除)。
エクセルでマクロを使うときのセキュリティ注意点
マクロは便利な反面、悪用するとマルウェアの侵入経路にもなります。次の3点を守ってください。
- 出所不明な.xlsmファイルは開かない:知らない送信者からのメール添付や、信頼性の確認できないサイトからのダウンロードは避ける
- 業務でマクロを共有する場合は信頼できる場所を活用する:社内ファイルサーバの特定フォルダを信頼できる場所として登録すれば、ブロックを毎回解除する手間が省ける
- 配布用マクロにはデジタル署名を付ける:開発元の正当性を証明でき、受け取り側のブロック解除手順が簡略化される
よくある質問(FAQ)
Q1:マクロは安全ですか?ウイルスのリスクは?
自分で記録機能を使って作ったマクロや、信頼できる相手から受け取ったマクロは安全です。ただし、出所不明な.xlsmファイルにはマルウェア(マクロウイルス)が仕込まれている可能性があるため、開く前に送信元と内容を必ず確認してください。Microsoftが2022年以降、インターネット入手マクロを既定でブロックする仕様に変更したのは、まさにこのリスク対策が目的です。
Q2:どんな業務にマクロを使うべきか、判断基準は?
「毎週・毎月、同じ手順で5分以上かけて繰り返している作業」が判断の目安となります。年に1回しかやらない作業をマクロ化するのは投資対効果が低く、逆に毎日30分かかっている書式整形作業は、マクロ化すれば年間で100時間以上の節約になります。請求書発行・月次レポート・データ整形・シート複製といった定型業務が特に向いています。
Q3:記録機能とVBAコード記述、どちらから始めるべき?
まずは記録機能から始めることをおすすめします。プログラミング知識がなくても、操作するだけでマクロを作る感覚をつかめます。記録したコードをVBEで開いて読むだけでもVBAの構文学習につながり、自然に応用へステップアップできます。
Q4:作ったマクロを他のブックでも使うには?
マクロを「個人用マクロブック(Personal.xlsb)」に保存します。エクセル起動時に自動で読み込まれる隠しブックで、どのブックを開いていても呼び出せるようになります。マクロの記録ダイアログで「保存先」を「個人用マクロブック」に変更するだけで作成可能です。
Q5:作成済みのマクロを編集・削除するには?
「開発」タブの「マクロ」をクリックし、対象のマクロ名を選択した上で「編集」(VBEが開いてコード修正)または「削除」を選びます。VBE上で標準モジュール自体を右クリックして「Module1の解放」を選んでも削除可能です。
まとめ
マクロは、繰り返し作業を一気に効率化できる強力な機能です。まずは「記録機能」で基本を体感し、慣れてきたらVBAで複雑な処理に挑戦するのが上達の近道となります。実行できないときの原因は「開発タブ非表示」「.xlsx保存」「MOTWブロック」「トラストセンター設定」「Mac特有の挙動」の5つに分類して切り分ければ、ほとんどのトラブルは自己解決できます。月次の請求書発行や定型レポートの整形など、毎月繰り返している業務から自動化を始めてみてください。
文/Excel研究所







DIME MAGAZINE












