「マクロを修正したいけど、どこを触ればいいのかわからない」
「自分でちょっとだけ動きを変えたいのに、コードが怖い…」
Excelでマクロを使い始めると、こんな悩みにぶつかる人がとても多いです。
マクロは、Excel作業を一気に楽にしてくれる強い味方ですが、「編集」となると一気にハードルが上がったように感じますよね。実は、マクロの編集は思っているより簡単で、基本的な手順を覚えれば誰でもできるようになります。
VBAエディターの使い方や、プログラムコードの読み方、そして安全にマクロを変更する方法など、業務効率化に直結するスキルを身につけることで、Excel作業がもっと楽になります。
この記事では、Excelマクロを編集する基本の流れを、初心者でもわかるようにやさしく解説します。さらに、失敗しやすいポイントや、よくある疑問にも答えていくので、ぜひ最後まで読んでください。
そもそもExcelのマクロってなに?

マクロの基本概念
まずは簡単におさらいしましょう。マクロは、Excel上でよく使う操作を自動化するしくみです。
正式名称と仕組み
- 正式名称:VBA(Visual Basic for Applications)というプログラム
- 動作原理:人間の操作を記録・再実行する機能
- 実行速度:手動操作の何十倍も高速
- 再利用性:一度作れば何度でも使える
具体的な活用例
例1:データ整理の自動化
- A列を昇順で並び替え
- B列に黄色い塗りつぶしを設定
- 空行を削除
- 書式を統一
例2:レポート作成の自動化
- 複数シートからデータを集計
- グラフを自動生成
- 印刷設定を適用
- PDFで保存
マクロ記録機能の活用
記録機能の使い方
- 「開発」タブ→「マクロの記録」
- 通常通り作業を行う
- 「記録終了」をクリック
- 次回からボタンで一瞬実行
記録されるもの
- セルの選択:どこをクリックしたか
- データ入力:何を入力したか
- 書式設定:どんな見た目にしたか
- 並び替え:どの順番で整理したか
マクロのメリット
作業効率の向上
- 時間短縮:数時間の作業が数秒で完了
- ミス削減:手動操作のヒューマンエラーを防止
- 標準化:同じ品質で一貫した作業
- 再現性:いつでも同じ結果を得られる
業務の質向上
- 集中力の向上:単純作業から解放
- 創造性の発揮:より高度な分析に時間を使える
- ストレス軽減:繰り返し作業のイライラ解消
この章のまとめ
- マクロはExcel作業を自動化するもの
- プログラム(VBA)として動いている
- 記録機能を使えば誰でも作成可能
- 業務効率化に大きな効果
次は、どうやってそのマクロを編集するのかを見ていきましょう。
Excelマクロを編集する方法
VBAエディターの基本
マクロを編集するには「VBAエディター」という画面を使います。ここからが、初心者がちょっと不安になるポイントです。
VBAエディターの開き方
方法1:キーボードショートカット
- Excelでマクロが入っているファイルを開く
Alt + F11
を押す(これでVBAエディターが開く)
方法2:リボンから
- 「開発」タブをクリック
- 「Visual Basic」をクリック
方法3:マクロ一覧から
- 「開発」タブ→「マクロ」
- 編集したいマクロを選択
- 「編集」をクリック
VBAエディターの画面構成
左側:プロジェクトエクスプローラー
- VBAProject(ファイル名):現在のファイル
- Microsoft Excel Objects:シートやブック
- 標準モジュール:マクロが保存される場所
右側:コードウィンドウ
- 実際のプログラムコードが表示される
- ここで編集作業を行う
下側:イミディエイトウィンドウ
- デバッグ情報が表示される
- エラーメッセージの確認に使用
コードを見つけるコツ
標準モジュールの確認
- **
標準モジュール
の中にModule1
**などがあり、その中にプログラムが入っていることが多いです - 複数のモジュールがある場合は、一つずつ確認
マクロ名の特徴
- マクロ名は「Sub マクロ名()」で始まります
- 「End Sub」で終わります
- 日本語名も使用可能
コードの構造理解
Sub マクロ名()
' ここにプログラムが書かれています
' 'で始まる行はコメント(メモ)です
End Sub
実際の編集例
基本的な変更例
例えば、以下のようなマクロがあったとします:
Sub 並び替え()
Range("A1:A10").Sort Key1:=Range("A1"), Order1:=xlAscending
End Sub
これを「A1:A10」ではなく「A1:A20」を並び替えたい場合は:
変更前:
Range("A1:A10")
変更後:
Range("A1:A20")
より実践的な編集例
例1:セル範囲の拡大
' 変更前:10行まで処理
Range("A1:A10").ClearContents
' 変更後:100行まで処理
Range("A1:A100").ClearContents
例2:処理対象シートの変更
' 変更前:Sheet1を処理
Sheets("Sheet1").Select
' 変更後:売上データを処理
Sheets("売上データ").Select
例3:書式設定の変更
' 変更前:黄色で塗りつぶし
Range("A1").Interior.Color = vbYellow
' 変更後:青色で塗りつぶし
Range("A1").Interior.Color = vbBlue
編集の基本手順
安全な編集の流れ
- ファイルのバックアップを作成
- VBAエディターを開く
- 該当するマクロを見つける
- 必要な箇所を慎重に変更
Ctrl + S
で保存- Excelに戻って動作確認
編集時の注意点
- 大文字・小文字の区別:VBAでは区別されない
- 全角・半角の区別:必ず半角英数字を使用
- 括弧の対応:開き括弧と閉じ括弧の数を一致させる
- クォーテーションの対応:文字列は必ず
"
で囲む
この章のまとめ
Alt + F11
でVBAエディターを開く- コードの該当箇所を見つけて変更する
- 変えたら上書き保存(
Ctrl + S
) - Excelに戻って動作確認
次は、編集時に気を付けたいポイントやよくある失敗について紹介します。
マクロ編集でよくある失敗と対策

よくある失敗パターン
保存関連の失敗
失敗1:保存を忘れて動かない
- 原因:VBAでの編集はExcel上の「上書き保存」とは別で、VBAエディター側でも保存(
Ctrl + S
)が必要 - 対策:編集後は必ずVBAエディターで保存してからExcelに戻る
失敗2:ファイル形式の問題
- 原因:マクロを含むファイルは
.xlsm
形式で保存する必要がある - 対策:「Excel マクロ有効ブック」形式で保存
コード記述の失敗
失敗3:スペルミスでエラー
- 原因:
Range
をRagne
と書くなど、小さなスペルミスでも止まる - 対策:よく使う命令は正確に覚える、コピー&ペーストを活用
失敗4:構文エラー
- 原因:括弧が足りない、クォーテーションが閉じていない
- 対策:エラーメッセージを読んで該当行を確認
実行時の失敗
失敗5:セキュリティ警告でマクロが無効
- 原因:Excelで「マクロを有効化」しないと動かない
- 対策:ファイルを開くときに「マクロを有効にする」をクリック
失敗6:参照エラー
- 原因:存在しないシートやセルを参照している
- 対策:シート名やセル範囲を正確に指定
具体的な対策方法
事前準備
バックアップの作成
- ファイルをコピーして別名で保存
- 「○○_バックアップ」などの名前を付ける
- 編集前の状態を保存
開発環境の設定
- 「開発」タブの表示:ファイル→オプション→リボンのユーザー設定
- 信頼できる場所の設定:セキュリティ警告を減らす
- 自動保存の設定:定期的な保存で作業を保護
エラー発生時の対処
エラーメッセージの読み方
- エラーの種類:実行時エラー、コンパイルエラー
- エラーの場所:どの行で問題が発生したか
- エラーの内容:何が原因でエラーになったか
デバッグの基本手順
- エラーが発生した行を確認
- 変数の値を確認(イミディエイトウィンドウを使用)
- ステップ実行(F8キーで一行ずつ実行)
- 修正後に再実行
よく使うトラブル解決法
コード復旧の方法
Ctrl + Z
で元に戻す:最近の変更を取り消し- バックアップから復元:完全に戻したい場合
- 段階的な修正:少しずつ変更して動作確認
動作確認のコツ
- 小さな変更から始める
- 変更後は必ずテスト実行
- 期待する結果と比較
- 問題があれば即座に修正
エラーを防ぐプログラミングのコツ
読みやすいコードの書き方
コメントの活用
Sub データ整理()
' A列を昇順で並び替え
Range("A1:A10").Sort Key1:=Range("A1"), Order1:=xlAscending
' B列に黄色の背景色を設定
Range("B1:B10").Interior.Color = vbYellow
End Sub
変数の使用
Sub 範囲指定()
Dim 対象範囲 As String
対象範囲 = "A1:A10"
Range(対象範囲).Sort Key1:=Range("A1"), Order1:=xlAscending
End Sub
安全なコードの書き方
エラーハンドリング
Sub 安全なマクロ()
On Error GoTo エラー処理
' 実際の処理
Range("A1:A10").Sort Key1:=Range("A1"), Order1:=xlAscending
Exit Sub
エラー処理:
MsgBox "エラーが発生しました: " & Err.Description
End Sub
この章のまとめ
- 編集は慎重に、必ずバックアップを取る
- 小さなミスで止まるので、コードはよく見直す
- エラーメッセージを読んで適切に対処
- 段階的に変更して動作確認
より実践的なマクロ編集テクニック
変数の活用
変数を使うメリット
コードの再利用性
Sub 柔軟な処理()
Dim 開始行 As Integer
Dim 終了行 As Integer
開始行 = 1
終了行 = 100
Range("A" & 開始行 & ":A" & 終了行).Sort Key1:=Range("A1"), Order1:=xlAscending
End Sub
メンテナンス性の向上
- 値を変更する場所が一箇所
- コードの意味が分かりやすい
- 後からの修正が簡単
よく使う変数の型
型 | 用途 | 例 |
---|---|---|
Integer | 整数 | 行番号、列番号 |
String | 文字列 | シート名、ファイル名 |
Boolean | 真偽値 | 処理の判定 |
Range | セル範囲 | 操作対象のセル |
条件分岐の追加
If文の基本
Sub 条件付き処理()
If Range("A1").Value > 100 Then
Range("A1").Interior.Color = vbRed
Else
Range("A1").Interior.Color = vbWhite
End If
End Sub
複数条件の処理
Sub 複数条件()
Dim 値 As Integer
値 = Range("A1").Value
If 値 >= 90 Then
Range("B1").Value = "優秀"
ElseIf 値 >= 70 Then
Range("B1").Value = "良好"
Else
Range("B1").Value = "要改善"
End If
End Sub
繰り返し処理の活用
For文でのループ
Sub 繰り返し処理()
Dim i As Integer
For i = 1 To 10
Range("A" & i).Value = i * 2
Next i
End Sub
While文でのループ
Sub 条件付きループ()
Dim 行番号 As Integer
行番号 = 1
While Range("A" & 行番号).Value <> ""
Range("B" & 行番号).Value = Range("A" & 行番号).Value * 2
行番号 = 行番号 + 1
Wend
End Sub
関数の作成
独自関数の作成
Function 消費税計算(金額 As Double) As Double
消費税計算 = 金額 * 0.1
End Function
Sub 税額計算()
Range("C1").Value = 消費税計算(Range("A1").Value)
End Sub
関数の活用メリット
- 処理の再利用
- コードの整理
- バグの減少
- メンテナンス性の向上
デバッグとテストの方法

デバッグの基本技術
ステップ実行
- コードの行にカーソルを置く
- F8キーを押す
- 一行ずつ実行されるので動作を確認
- 変数の値を確認
ブレークポイントの設定
- 停止させたい行をクリック
- F9キーを押す
- 赤い点が表示される
- 実行すると該当行で停止
イミディエイトウィンドウの活用
' 実行中に変数の値を確認
? 変数名
' 実行中にコードを実行
Range("A1").Value = "テスト"
テストの重要性
単体テスト
- 個別の処理が正しく動くか
- 様々な入力値での動作確認
- エラーが適切に処理されるか
統合テスト
- 複数の処理が連携して動くか
- 実際のデータでの動作確認
- パフォーマンスの確認
品質の高いマクロを作るコツ
コードの整理
適切なコメント
' 売上データを昇順で並び替え
Range("A1:A10").Sort Key1:=Range("A1"), Order1:=xlAscending
関数の分割
Sub メイン処理()
Call データ読み込み
Call データ加工
Call 結果出力
End Sub
定数の使用
Const 最大行数 As Integer = 1000
まとめ
重要なポイントの再確認
マクロを編集するのは最初こそドキドキしますが、手順をおさえれば意外とシンプルです。
基本的な編集手順
Alt + F11
でVBAエディターを開く- コードを探して必要な箇所を修正する
- 編集後は上書き保存してExcelでテスト
- 動作確認を必ず行う
安全な編集のために
- バックアップを必ず作成
- 小さな変更から始める
- エラーメッセージを恐れない
- 段階的にテストする
マクロ編集の効果
業務効率化の実現
- 作業時間の大幅短縮
- ミスの削減
- 標準化された処理
- 再利用可能な資産
スキルアップの効果
- プログラミング思考の習得
- 問題解決能力の向上
- 業務改善への意識
- 創造性の発揮
継続的な学習
次のステップ
マクロを自分で編集できるようになると、Excelの作業効率はぐっと上がります。最初は小さな変更から挑戦してみてくださいね。
おすすめの学習順序:
- 既存マクロの軽微な修正
- 新しい処理の追加
- 条件分岐の組み込み
- 繰り返し処理の活用
- エラーハンドリングの実装
実践的な活用場面
- データ集計の自動化
- レポート生成の効率化
- 書式設定の統一
- 複雑な計算の自動化
コメント