はじめに
Excelのシート操作、こんな作業を手動でしていませんか?
- 毎月同じ名前のシートを追加している
- 複数シートをまとめてコピーしている
- シートの保護を何枚も手動で設定している
シート管理はVBAで自動化できます。今回はシート操作に特化した20本を紹介します。
導入方法: Alt+F11 → 挿入→モジュール → コード貼り付け → Alt+F8 で実行
全コード → Excel VBA Top100 Macros
1. ヘッダー・フッターを自動設定 — AddHeaderFooter
全シートのヘッダー・フッター(ページ番号・日付・ファイル名など)を一括で設定します。
こんな場面で使える
- 印刷時に全シートにページ番号を自動でつけたい
- ヘッダーに会社名・フッターに日付を統一したい
- 複数シートのヘッダー設定をまとめて変更したい
👉 詳細コード: https://excel100.kinokotown.com/macro/AddHeaderFooter
2. 新しいシートを追加 — AddNewSheet
指定した名前の新しいシートを自動で追加します。重複チェック付き。
こんな場面で使える
- 「1月」「2月」…12枚のシートを一気に作りたい
- 入力したデータをもとにシートを動的に作成したい
- テンプレートシートをコピーして新しいシートを追加したい
👉 詳細コード: https://excel100.kinokotown.com/macro/AddNewSheet
3. 印刷範囲をクリア — ClearPrintArea
すべてのシートの印刷範囲設定を一括で削除します。
こんな場面で使える
- 印刷範囲の設定が邪魔でシート全体を印刷できない
- 複数シートの印刷範囲をリセットしたい
- 他人が設定した印刷範囲を全部消したい
👉 詳細コード: https://excel100.kinokotown.com/macro/ClearPrintArea
4. シートタブに色を付ける — ColorSheetTabs
シートタブを指定した色に自動で色分けします。
こんな場面で使える
- 「完了」シートを緑・「進行中」シートを黄色に色分けしたい
- シートが多すぎて目的のシートを見つけにくい
- カテゴリ別にシートタブの色を統一したい
👉 詳細コード: https://excel100.kinokotown.com/macro/ColorSheetTabs
5. 2つのシートの差分を比較 — CompareSheets
2つのシートを比較して、異なるセルをハイライト表示します。
こんな場面で使える
- 修正前・修正後のシートで何が変わったか確認したい
- 先月と今月のデータを比較して差分を見つけたい
- 2人が別々に編集したシートの違いを確認したい
👉 詳細コード: https://excel100.kinokotown.com/macro/CompareSheets
6. シートをコピー — CopySheet
指定したシートを同じブック内の任意の位置にコピーします。
こんな場面で使える
- 毎月テンプレートシートをコピーして新しいシートを作りたい
- シートを複数枚まとめてコピーしたい
- コピー後に自動でシート名を変更したい
👉 詳細コード: https://excel100.kinokotown.com/macro/CopySheet
7. シートを新しいブックにコピー — CopySheetToNewWorkbook
指定したシートを新しいブックとして書き出します。
こんな場面で使える
- 特定のシートだけ別ファイルとして取引先に渡したい
- 月次シートをそれぞれ別のExcelファイルに分割したい
- 部門別シートを部門ごとのファイルに切り出したい
👉 詳細コード: https://excel100.kinokotown.com/macro/CopySheetToNewWorkbook
8. 空のシートを一括削除 — DeleteEmptySheets
データが何もない空のシートをまとめて削除します。
こんな場面で使える
- テンプレートから不要なシートを一掃したい
- ファイルをきれいにしてから取引先に渡したい
- 空シートが多くてシートタブが見づらい
👉 詳細コード: https://excel100.kinokotown.com/macro/DeleteEmptySheets
9. シートを削除 — DeleteSheet
確認ダイアログなしで指定したシートを削除します。
こんな場面で使える
- マクロの処理中に一時シートを自動削除したい
- 複数の不要なシートをリストで指定して一括削除したい
- ダイアログが出ずに素早くシートを削除したい
👉 詳細コード: https://excel100.kinokotown.com/macro/DeleteSheet
10. シートをグループ化 — GroupSheets
複数のシートを選択状態(グループ化)にします。複数シートへの同時編集に便利。
こんな場面で使える
- 複数シートに同じヘッダーを一度に入力したい
- グループ化して印刷設定を一括変更したい
- 同じ変更を複数シートに同時に適用したい
👉 詳細コード: https://excel100.kinokotown.com/macro/GroupSheets
11. シートを非表示にする — HideSheet
指定したシートを非表示にします。Very Hidden(VBAからも隠す)にも対応。
こんな場面で使える
- マスタデータシートを一般ユーザーに見せたくない
- 計算用の中間シートを非表示にしたい
- パスワードと組み合わせてシートを隠したい
👉 詳細コード: https://excel100.kinokotown.com/macro/HideSheet
12. 全シートの一覧を作成 — ListAllSheets
ブック内のすべてのシート名をリストアップして一覧シートを作ります。
こんな場面で使える
- シートが多すぎて全体を把握したい
- シート一覧にハイパーリンクを付けて目次を作りたい
- シート名・枚数を記録しておきたい
👉 詳細コード: https://excel100.kinokotown.com/macro/ListAllSheets
13. シートを移動 — MoveSheet
指定したシートを任意の位置に移動します。
こんな場面で使える
- シートを特定の順番に並べ直したい
- 新しく作ったシートを末尾や先頭に移動したい
- アルファベット順・日付順にシートを並べたい
👉 詳細コード: https://excel100.kinokotown.com/macro/MoveSheet
14. 目的のシートに素早く移動 — NavigateToSheet
シート名を入力すると対象シートに瞬時にジャンプします。
こんな場面で使える
- シートが多すぎて目的のシートを探すのに時間がかかる
- キーボードだけで素早くシートを切り替えたい
- シート名の一部を入力して候補から選びたい
👉 詳細コード: https://excel100.kinokotown.com/macro/NavigateToSheet
15. シートを保護 — ProtectSheet
指定したシートにパスワード保護を設定します。
こんな場面で使える
- 数式が入ったセルを誤操作から保護したい
- 複数シートのパスワード保護を一括で設定したい
- 特定の列だけ編集可能にして他は保護したい
👉 詳細コード: https://excel100.kinokotown.com/macro/ProtectSheet
16. シートの名前を変更 — RenameSheet
シート名を一括またはルールに従って自動でリネームします。
こんな場面で使える
- 「Sheet1, Sheet2...」を意味のある名前に一括変更したい
- セルの値をもとにシート名を自動設定したい
- 日付や連番を含むシート名を自動で生成したい
👉 詳細コード: https://excel100.kinokotown.com/macro/RenameSheet
17. 印刷範囲を設定 — SetPrintArea
選択範囲を印刷範囲として自動で設定します。
こんな場面で使える
- データが増えるたびに印刷範囲を手動で広げている
- 複数シートに同じサイズの印刷範囲を設定したい
- 印刷範囲を動的に変えるマクロに組み込みたい
👉 詳細コード: https://excel100.kinokotown.com/macro/SetPrintArea
18. シートを名前順に並べ替え — SortSheetsByName
シートタブをアルファベット順または五十音順に自動で並べ替えます。
こんな場面で使える
- シートが増えて順番がバラバラになった
- 月別シートを1月〜12月順に整列したい
- 部門名のシートをあいうえお順に並べたい
👉 詳細コード: https://excel100.kinokotown.com/macro/SortSheetsByName
19. 非表示シートをすべて再表示 — UnhideAllSheets
非表示になっているシートをまとめて再表示します。
こんな場面で使える
- どのシートが非表示になっているか確認したい
- 非表示シートが多くて1枚ずつ表示するのが大変
- 引き継いだファイルの隠しシートを一覧化したい
👉 詳細コード: https://excel100.kinokotown.com/macro/UnhideAllSheets
20. シートの保護を解除 — UnprotectSheet
パスワードを指定してシートの保護を解除します。複数シートを一括解除も可能。
こんな場面で使える
- 保護されたシートを一括で解除したい
- 編集後に再保護するマクロに組み込みたい
- 複数シートのパスワード保護を一括で解除したい
👉 詳細コード: https://excel100.kinokotown.com/macro/UnprotectSheet
まとめ
| # | マクロ名 | 用途 |
|---|---|---|
| 1 | AddHeaderFooter | ヘッダー・フッターを設定 |
| 2 | AddNewSheet | 新しいシートを追加 |
| 3 | ClearPrintArea | 印刷範囲をクリア |
| 4 | ColorSheetTabs | シートタブに色を付ける |
| 5 | CompareSheets | 2シートの差分を比較 |
| 6 | CopySheet | シートをコピー |
| 7 | CopySheetToNewWorkbook | シートを新ブックにコピー |
| 8 | DeleteEmptySheets | 空のシートを削除 |
| 9 | DeleteSheet | シートを削除 |
| 10 | GroupSheets | シートをグループ化 |
| 11 | HideSheet | シートを非表示に |
| 12 | ListAllSheets | 全シートの一覧を作成 |
| 13 | MoveSheet | シートを移動 |
| 14 | NavigateToSheet | 目的のシートに移動 |
| 15 | ProtectSheet | シートを保護 |
| 16 | RenameSheet | シート名を変更 |
| 17 | SetPrintArea | 印刷範囲を設定 |
| 18 | SortSheetsByName | シートを名前順に並べ替え |
| 19 | UnhideAllSheets | 非表示シートを再表示 |
| 20 | UnprotectSheet | シートの保護を解除 |
各マクロのVBAコード全文は以下で無料公開中です。
👉 Excel VBA Top100 Macros: https://excel100.kinokotown.com
この記事は Excel VBA Top100 Macros の運営者が執筆しました。