Excelマクロ記録とVBE入門|Range・Cells操作・実務5シナリオとMOS Excel 365 エキスパート試験対策

「毎週同じ集計表をコピーして書式を整え直している」「印刷設定を何度も同じように変えている」——Excelを使っていると、こうした繰り返し作業が業務の中に積み重なっていきます。Excelのマクロ記録機能を使えば、操作を「録画」してボタン1つで再現できます。プログラミング経験がなくても、マクロの記録とVisual Basic Editor(VBE)の基本を組み合わせることで、業務に使えるマクロが作れます。

本記事では、開発タブの表示からマクロの記録・実行・ショートカットキー割り当てまでの基本操作を解説し、VBEで使うRange・Cells・With構文の基礎も紹介します。実務でよく使う5つのシナリオとコード例、MOS Excel 365 エキスパート(MO-211)の出題ポイントとチェックリストも掲載しているので、試験対策と実務スキルを同時に強化できます。


Excelマクロ記録とVBE入門|Range・Cells操作・実務5シナリオとMOS Excel 365 エキスパート試験対策 - 解説
目次

「開発タブ」を表示してマクロ機能を有効にする

Excelのマクロ機能は「開発タブ」に集約されています。既定では非表示なので、最初に一度だけ設定を変更する必要があります。

  1. 「ファイル」→「オプション」を開く
  2. 「リボンのユーザー設定」を選択する
  3. 右側の「メインタブ」一覧から「開発」にチェックを入れる
  4. 「OK」をクリックする

リボンに「開発」タブが追加されます。このタブには「マクロの記録」「マクロ」「Visual Basic」「マクロのセキュリティ」など、マクロ操作に必要なすべてのボタンが揃っています。

マクロを記録する(操作の録画)

マクロの記録は「操作を録画する」イメージです。記録開始後にExcelで行った操作が自動的にVBAコードとして保存されます。

  1. 「開発」タブ→「マクロの記録」をクリックする
  2. 「マクロ名」を入力する(半角英数字・アンダースコアのみ。スペース不可)
  3. 「マクロの保存先」を選択する(詳細は下表参照)
  4. 必要であれば「ショートカットキー」「説明」も入力する
  5. 「OK」をクリックするとマクロ記録が始まる(ステータスバーの停止アイコンが目印)
  6. 自動化したい操作を実際に行う
  7. 「開発」タブ→「記録終了」をクリックして記録を停止する
保存先適用範囲用途
個人用マクロブック(PERSONAL.XLSB)Excelを起動するたびに使用可能汎用的な書式設定・集計マクロなど
作業中のブックそのブックを開いているときだけ使用可能プロジェクト固有・一時的な自動化
新しいブック記録と同時に新規ブックが作成されるマクロ専用ブックとして管理する場合

注意:「個人用マクロブック(PERSONAL.XLSB)」に保存したマクロは、同じPCで開くすべてのブックに反映されます。他のPCや同僚と共有する場合は「作業中のブック」を選択し、ブックファイルと一緒に配布します。

記録したマクロを実行する

記録したマクロを実行する方法は3通りあります。用途に応じて使い分けると効率的です。

マクロダイアログから実行する(Alt+F8)

Alt+F8キーを押すか、「開発」タブ→「マクロ」をクリックすると「マクロ」ダイアログが開きます。一覧から実行したいマクロを選択して「実行」ボタンを押すだけです。マクロ名が多い場合は「マクロの保存先」をフィルタリングして絞り込めます。

ショートカットキーに割り当てて即時実行する

記録時に「ショートカットキー」欄で設定するか、記録後に「開発」タブ→「マクロ」→マクロを選択→「オプション」から設定できます。Ctrl+任意のキー(またはCtrl+Shift+任意のキー)で割り当てられます。Excelの既存ショートカットと重複しないキーを選ぶ必要があります。

クイックアクセスツールバーにボタンとして登録する

頻繁に使うマクロは、画面左上のクイックアクセスツールバー(QAT)にボタンとして登録するとワンクリックで実行できます。

  1. 「ファイル」→「オプション」→「クイックアクセスツールバー」を開く
  2. 「コマンドの選択」ドロップダウンから「マクロ」を選択する
  3. 一覧から登録したいマクロを選択し「追加」をクリックする
  4. 「変更」ボタンでアイコンと表示名をカスタマイズできる
  5. 「OK」で完了

Visual Basic Editor(VBE)でマクロを確認・編集する

Alt+F11キーを押すか、「開発」タブ→「Visual Basic」をクリックするとVisual Basic Editor(VBE)が開きます。記録したマクロはVBAコードとして保存されており、直接編集することで記録では対応できない処理を追加できます。

マクロコードは「標準モジュール」に保存されます。VBEの左側に表示される「プロジェクトエクスプローラー」で「標準モジュール」→「Module1」(または任意のモジュール名)をダブルクリックすると、コードが右側のコードエディタに表示されます。

記録したマクロの基本的な構造は次の通りです。

Sub 売上表書式整形()
    ' セルA1:F1のフォントを太字にする
    Range("A1:F1").Font.Bold = True
    ' 背景色を薄い青に設定する(RGB値)
    Range("A1:F1").Interior.Color = RGB(173, 216, 230)
End Sub

Sub マクロ名()で始まりEnd Subで終わるのがマクロの基本構造です。行頭に'(シングルクォート)を付けるとコメントになり実行されません。

ExcelのオブジェクトモデルとRange・Cells

ExcelのVBAでは「セルやシートを操作するオブジェクト」を理解することが鍵です。よく使うオブジェクトとプロパティを下表に示します。

オブジェクト/プロパティ意味使用例
Range("A1")セルA1を指定するRange("A1").Value = "合計"(セルに値を入力)
Range("A1:C3")A1~C3の範囲を指定するRange("A1:C3").ClearContents(内容を削除)
Cells(行, 列)数値で行列を指定するCells(1, 1).Value = "No."(1行1列目=A1)
ActiveSheet現在選択中のシートActiveSheet.Name(シート名を取得)
ActiveWorkbook現在開いているブックActiveWorkbook.Save(上書き保存)
Worksheets("シート名")シート名でシートを指定するWorksheets("集計").Activate(シートをアクティブに)
Selection現在選択されているセル範囲Selection.NumberFormat = "#,##0"(3桁区切り書式)

Rangeは文字列でセルを指定するため直感的に使いやすく、Cellsは変数で行列を指定できるため繰り返し処理(Forループ)に向いています。

With構文で記述量を減らす

同じオブジェクトに対して複数のプロパティを設定する場合、With構文を使うとコードが短くなります。

' With構文を使わない場合
Range("A1:D1").Font.Bold = True
Range("A1:D1").Font.Size = 12
Range("A1:D1").Font.Color = RGB(255, 255, 255)
Range("A1:D1").Interior.Color = RGB(0, 70, 127)

' With構文を使う場合(同じ操作を短く書ける)
With Range("A1:D1")
    .Font.Bold = True
    .Font.Size = 12
    .Font.Color = RGB(255, 255, 255)
    .Interior.Color = RGB(0, 70, 127)
End With

マクロの記録で生成されたコードは冗長になりがちです。VBEで確認し、With構文にまとめることで可読性と保守性が上がります。

実務シナリオ別マクロ5例

シナリオ1:ヘッダー行の書式を一括整形する

受け取ったExcelデータのヘッダー行(1行目)を、フォント・背景色・文字揃えを自社基準に統一するマクロです。記録機能だけで作成できます。

Sub ヘッダー行書式統一()
    With Range("A1").CurrentRegion.Rows(1)
        .Font.Bold = True
        .Font.Size = 11
        .Interior.Color = RGB(0, 70, 127)
        .Font.Color = RGB(255, 255, 255)
        .HorizontalAlignment = xlCenter
    End With
End Sub

シナリオ2:数値列に3桁区切りの表示形式を適用する

選択した列全体に3桁区切りの数値書式を適用するマクロです。Selectionを使うことで実行前に選択した範囲に対して動作します。

Sub 金額書式適用()
    Selection.NumberFormat = "#,##0"
End Sub

事前に金額の入った列を選択してからマクロを実行するだけで完了します。ショートカットキーに割り当てると特に便利です。

シナリオ3:印刷設定を一括で適用する

毎回同じ印刷設定(用紙A4・横向き・余白・ヘッダー挿入)を手作業で行っている場合、マクロで自動化できます。

Sub 印刷設定一括()
    With ActiveSheet.PageSetup
        .PaperSize = xlPaperA4
        .Orientation = xlLandscape
        .LeftMargin = Application.CentimetersToPoints(1.5)
        .RightMargin = Application.CentimetersToPoints(1.5)
        .TopMargin = Application.CentimetersToPoints(2)
        .BottomMargin = Application.CentimetersToPoints(2)
        .CenterHorizontally = True
        .FitToPagesWide = 1
        .FitToPagesTall = False
    End With
End Sub

シナリオ4:空白行を一括削除する

データに混在している空白行をまとめて削除するマクロです。ForループとCellsを組み合わせることで、記録では生成できない繰り返し処理を実装します。

Sub 空白行削除()
    Dim lastRow As Long
    Dim i As Long
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
    ' 下から上へループして空白行を削除する(上から削除すると行番号がずれるため)
    For i = lastRow To 1 Step -1
        If Cells(i, 1).Value = "" Then
            Rows(i).Delete
        End If
    Next i
End Sub

「下から上へ」ループするのは、行を削除すると行番号がずれるためです。上から削除すると行をスキップしてしまう誤動作が起きます。

シナリオ5:現在のシートを日付付きブック名で保存する

Sub 日付付きで保存()
    Dim filePath As String
    filePath = ActiveWorkbook.Path & "\" & _
               ActiveSheet.Name & "_" & _
               Format(Date, "yyyymmdd") & ".xlsx"
    ActiveWorkbook.SaveAs _
        FileName:=filePath, _
        FileFormat:=xlOpenXMLWorkbook
    MsgBox "保存しました:" & filePath
End Sub

シート名と日付を組み合わせてファイル名を自動生成するため、同名ファイルの上書き事故を防ぎながら版管理ができます。

マクロのセキュリティ設定

VBAマクロはコードを実行できる仕組みであるため、外部から受け取ったブックのマクロは無条件で実行しないことが重要です。「開発」タブ→「マクロのセキュリティ」で確認・変更します。

セキュリティレベル動作推奨用途
すべてのマクロを無効にする(通知なし)マクロを一切実行しない。セキュリティバーも表示されないマクロを使わない環境・高セキュリティ要件の組織
すべてのマクロを無効にする(通知あり)※既定マクロを含むブックを開くとセキュリティバーが表示される。ユーザーが手動で有効にできる一般ビジネス用途(バランスが良い)
デジタル署名されたマクロのみ有効にする信頼できる発行元に署名されたマクロのみ実行社内配布マクロに電子署名を使う組織向け
すべてのマクロを有効にする確認なく全マクロが実行されるマクロ開発・テスト中のみ(通常運用には非推奨)

自分で作成したマクロを含むブックは「信頼できる場所」に追加することで、毎回の確認ダイアログをスキップできます。「トラストセンター」→「信頼できる場所」に作業フォルダを登録するのが最も手軽な方法です。

また、マクロを含むファイルは拡張子が.xlsm(マクロ有効ブック)になります。通常の.xlsx形式で保存するとマクロが削除されるため、保存時の形式選択に注意が必要です。

MOS Excel 365 エキスパート(MO-211)でのマクロの出題ポイント

MOS Excel 365 エキスパート(MO-211)の出題範囲「高度な機能を使用した数式およびマクロの作成」にはマクロの記録と実行が含まれます。VBAコードの記述は基本的に問われませんが、UIを使った操作手順が問われます。

  • 開発タブを表示する手順:「ファイル」→「オプション」→「リボンのユーザー設定」で「開発」にチェック。試験環境では既に表示されている場合もある
  • マクロを記録する操作:「開発」→「マクロの記録」→マクロ名入力→OK→操作実行→「記録終了」の一連の流れ
  • マクロの保存先の違い:「個人用マクロブック(PERSONAL.XLSB)」と「作業中のブック」の違いと使い分けが問われる
  • マクロを実行する方法:Alt+F8でダイアログを開き、対象マクロを選んで「実行」する操作
  • ショートカットキーの割り当て:記録時またはマクロのオプションからキーを割り当てる手順
  • VBEを開く方法:Alt+F11または「開発」→「Visual Basic」。試験ではコード編集は基本不要
  • マクロ有効ブック(.xlsm)で保存する:マクロを含むファイルを保存する際の形式選択

試験時間は50分、採点は1000点満点です。合格点は公表されていませんが550点~850点が目安とされています。MOS Excel 365 エキスパートの学習時間は、アソシエイト(MO-210)合格後に追加で60~100時間が目安(公式非公表)です。

MOS試験 マクロ操作チェックリスト

確認ポイント操作内容難易度
開発タブを表示するファイル→オプション→リボンのユーザー設定→開発にチェック★☆☆
マクロを記録する開発→マクロの記録→マクロ名入力→操作→記録終了★★☆
マクロの保存先を選ぶPERSONAL.XLSBか作業中のブックかを記録時に指定する★★☆
マクロをAlt+F8で実行するAlt+F8→一覧から選択→実行★☆☆
ショートカットキーを割り当てる開発→マクロ→オプション→ショートカットキー設定★★☆
QATにマクロボタンを登録するオプション→クイックアクセスツールバー→マクロ→追加★★☆
VBEでマクロを確認するAlt+F11→標準モジュール内のコードを確認★★☆
マクロ有効ブックとして保存する名前を付けて保存→ファイルの種類で「Excelマクロ有効ブック(.xlsm)」を選択★★☆

Excelマクロ記録とVBE入門|Range・Cells操作・実務5シナリオとMOS Excel 365 エキスパート試験対策 - まとめ

まとめ:Excelマクロを活用するための5つの基本

本記事のポイントをまとめます。

  • 最初は「記録」から始める:プログラミングの知識がなくてもマクロの記録機能だけで多くの繰り返し作業を自動化できる。VBEの編集はその後のステップとして取り組めばよい
  • 保存先は用途に合わせて選ぶ:毎日使う汎用マクロは個人用マクロブック(PERSONAL.XLSB)に保存し、特定プロジェクト専用のマクロはそのブック内に保存する。チームで共有する場合はブック内保存で配布する
  • Range・Cells・With構文の3点セットを覚える:VBEで記録済みコードを確認するだけでも業務が効率化できる。Range・Cells・Withの基本を押さえれば記録コードの意味が読めるようになり、小さな修正ができるようになる
  • 保存形式は.xlsmを忘れずに選ぶ:マクロを含むブックは必ず「Excelマクロ有効ブック(.xlsm)」で保存する。.xlsx形式で保存するとマクロが失われる
  • MOS試験は記録・実行・保存先・.xlsm保存の4点を押さえる:開発タブの表示、マクロの記録手順、Alt+F8による実行、保存先の違い、.xlsm形式での保存が頻出。実際のExcelで録画→実行を繰り返し練習することが合格への近道

Excelのマクロは一度覚えると「一生使えるスキル」です。記録機能だけでも書式統一・印刷設定・集計コピーなどの繰り返し作業を大幅に効率化できます。本記事のシナリオを参考に、まず自分の業務でよく行う操作を1つ記録してみることから始めてみてください。

PR

MOS Excel 365 対策テキスト&問題集

マクロの記録・実行を含むMOS Excel 365 エキスパート(MO-211)の全出題範囲を網羅したテキストと問題集のセット。試験直前の総復習や苦手単元の確認に最適で、本記事のチェックリストと組み合わせて学習効率を高められます。

PR

たった1秒で仕事が片づくExcel自動化の教科書【改訂第3版】

マクロ記録から実践的なVBA活用まで、実務レベルのExcel自動化を体系的に学べる一冊。記録マクロの応用パターンや業務シナリオが豊富で、本記事を読んだ後の次のステップとして最適です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次