この記事では「エクセルにてシート削除を一括で行う方法(タブをまとめて削除する)」について解説していきます。
これらの処理としては、主に
・ 削除したいシートを選択
・ VBA(マクロ)の使用
で解決します。マクロの使用はエクセル知識がある程度無いと難しいかもしれません。
実際のサンプルを用いて見ていきましょう。
エクセルにてシート削除を一括で行う方法1【タブをまとめて削除する:※複数のシートを選択して削除】
エクセルにてシートを一括削除するには、マクロを使わないケースでは単純作業として
・複数のシートを一括選択
・その後、全削除
と処理していきます。
今回は例として、Sheet5,6,7を全て削除してみましょう。
複数のシートを選択するためには、削除したいシートが全て隣り合っている(連続している)場合、右端か左端のシートをまずは選択します。
以下の例では削除したいシート右端のSheet7を選択しました。
その状態でShiftを押し、削除したい左端のSheet5を選択すると選択していないSheet6も含め、Sheet5-7が一括選択されます。
後は、選択したSheet5-7のどこかにカーソルを合わし、右クリックで”削除”を選択すれば選択されたシートが全て削除されます。
また上のシートの一括削除するためショートカットキーはこちらで解説していますので、併せて確認してみてください。
なお、削除したいシートが上記のように隣り合っていない場合、Ctrlを押しながら選択しても複数の選択が可能です。下の図はCtrlを押しながらSheet5とSheet7を選択しました。
この方法がマクロを使用しないで、シートをまとめて消す方法です。
エクセルにてシート削除を一括で行う方法2【※マクロの使用】
本説明はエクセルに内蔵されているVBA(マクロ)を用います。マクロを使うためには”開発”タブを追加する必要がありますが、その方法は本項目で説明する内容と異なるため、別項目を参照下さい。
以下のコードで複数のシート削除をボタン一つで行うことが可能です。
———-
Sub WSdelete()
Dim i as integer
For i = Worksheets.Count to X(←任意の数字) step -1
Worksheets(i).delete
Next
End sub
———-
※貼り付ける際、赤文字は消して下さい。
実際のコードのスクリーンショットは以下の通り。
各コードの意味は以下の通りです。
Sub WSdelete()
→マクロ名をWSdeleteとしています
Dim i as integer
→iという変数を整数型として宣言しています
For i =Worksheets.Count to X step -1
Worksheets(i).delete
Next
→ここで、Xは任意の数値を入れましょう(例えば5など)
このコードにて、ブック内に含まれるシート数を数え、大きい番号から1個ずつX番目のシートまで削除しなさい”という処理を行っています。
例えば以下の例では4つのシートがブックに含まれており、シートの番号が左から順に1,2,3,4となります(Sheet7=1, Sheet8=2, Sheet9=3, Sheet10=4 ※シート数はシート名とは関係ありません)。
今回の例の場合の数値で説明します。
Sheet8は残し、Sheet9と10を削除したい場合、ブック内にあるシート数は4つなので、”シート番号4を削除し、次にシート番号3を削除しなさい”というコードが必要となります。すなわち、For iの部分は3が入り、以下のようなコードになるわけです。
For i =Worksheets.Count to 3 step -1 ※worksheets.countが4となる
Worksheets(i).delete
これが、マクロを使用しシートをまとめて消す方法です。
マクロ を使えば、”シートを1つ飛ばしで削除しなさい”等、応用を広げることが可能のため、ぜひ扱いに慣れることをおすすめします。
まとめ エクセルでのタブの一括削除(まとめて消す)の方法
この記事では「エクセルにてシート削除を一括で行う方法」について解説しました。
複数のシートの一括削除は削除したいシートを全て選択し、右クリックで削除を選択すれば可能です。また、最初はハードルが高いかもしれませんが、VBAを使うとより効率のいい作業が可能となりますので是非チャレンジして下さい。
それではよりよいエクセルライフを。