0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【VBA】Excelのシート管理を自動化する20のマクロ【追加・削除・保護】

0
Posted at

はじめに

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 の運営者が執筆しました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?