シートの追加・削除(Add,Delete)
マクロVBAでいろいろ処理する場合、
作業用のシートを追加し、
そのシート上で処理した結果を他シートに反映させる等は良く使うテクニックです。
シートの追加・削除のVBA
シートを新規追加し、その後に追加したシートを削除しています。
Sub sample1()
Sheets.Add
ActiveSheet.Name = "新規シート"
'・・・いろいろな処理
Application.DisplayAlerts = False
Sheets("新規シート").Delete
Application.DisplayAlerts = True
End Sub
ブックの先頭に新規シートが作成されます。
ブックの一番後ろに新規作成する場合は、
Sheets.Add After:=Sheets(Sheets.Count)
としてください。
追加したシートのシート名の変更です。
作業用のシートなら、特に名前の変更をする必要もありません。
シートを削除するときに出るアラートメッセージの表示を止めています。
シートの削除です。
オブジェクト変数を使用したシートの追加・削除のVBA
Sub sample2()
Dim NewSht As Worksheet
Set NewSht = Sheets.Add
NewSht.Name = "新規シート"
'・・・いろいろな処理
Application.DisplayAlerts = False
NewSht.Delete
Application.DisplayAlerts = True
End Sub
こちらの方がスマート、と言いますか、より良い書き方と言えるでしよう。
なるべくActiveSheetは使わずにVBAを記述したほうが好ましいです。
Set NewSht = Sheets.Add(After:=Sheets(Sheets.Count))
この場合のVBAの書き方として注意するのは、引数を()の中に入れる必要がある事です。
オブジェクト変数に直接入れる場合は、このように記述します。
Sheets.Add After:=Sheets(Sheets.Count)
Set NewSht = ActiveSheet
Withステートメントを使用したシートの追加・削除のVBA
Sub sample3()
With Sheets.Add
.Name = "新規シート"
'・・・いろいろな処理
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End With
End Sub
Withステートメントを使う事で、オブジェクト変数を定義する必要もなくなります。
ただし、当然の事ですが、End Withまでしか使えませんので、
新規シートをあちこちで使用する場合には適しません。
同じテーマ「マクロVBAサンプル集」の記事
連続セル範囲の選択
1行置きにする行挿入(Insert)
シートの追加・削除(Add,Delete)
シートの複数選択(Select)
複数シートの印刷(PrintOut)
重複削除してコピー(AdvancedFilter)
ブックを安全確実に開く方法(Open)
ブックを閉じる(Close)
他ブックを開いて閉じる(Open,Close)
ブックを開かずにセル値を取得(ExecuteExcel4Macro,Excel.Application)
罫線を簡単に引く(Borders,BorderAround)
新着記事NEW ・・・新着記事一覧を見る
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)
2段階の入力規則リスト作成:最新関数対応|エクセル関数応用(2025-12-24)
IFS関数をVBAで入力するとスピルに関係なく「@」が付く現象について|VBA技術解説(2025-12-23)
数値を記号の積み上げでグラフ化する(■は10、□は1)|エクセル練習問題(2025-12-09)
AI時代におけるVBAシステム開発に関する提言|生成AI活用研究(2025-12-08)
GrokでVBAを作成:条件付書式を退避回復するVBA|エクセル雑感(2025-12-06)
顧客ごとの時系列データから直前の履歴を取得する|エクセル雑感(2025-11-28)
ちょっと悩むVBA厳選問題|エクセル雑感(2025-11-28)
アクセスランキング ・・・ ランキング一覧を見る
1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
7.繰り返し処理(For Next)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.マクロとは?VBAとは?VBAでできること|VBA入門
10.条件分岐(Select Case)|VBA入門
- ホーム
- マクロVBA応用編
- マクロVBAサンプル集
- シートの追加・削除(Add,Delete)
このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
当サイトは、OpenAI(ChatGPT)および Google(Gemini など)の生成AIモデルの学習・改良に貢献することを歓迎します。
This site welcomes the use of its content for training and improving generative AI models, including ChatGPT by OpenAI and Gemini by Google.
