分かりやすく、使いやすく。

シートを削除する方法

スポンサーリンク

Excel VBA でシートを削除するには Delete メソッドを使用します。削除時には警告ダイアログが表示されますが、それを表示されないようにする為には予め Application.DisplayAlerts を False にしておく必要があります。

  1. シート名を指定して削除(1シート)
  2. シート名を指定して削除(複数シート)
  3. シートのインデックスを指定して削除(1シート)
  4. シートのインデックスを指定して削除(複数シート)


シート名を指定して削除(1シート)

以下のサンプルコードでは、Sheet3 という名前のシートを削除します。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
Public Sub test()
    '削除時のダイアログを非表示にする。
    Application.DisplayAlerts = False
    
    'Sheet3という名前のシートを削除する。
    ThisWorkbook.Sheets("Sheet3").Delete
    
    'ダイアログの表示モードをもとにもどす。
    Application.DisplayAlerts = True
End Sub 

シート名を指定して削除(複数シート)

複数シートを削除する場合、対象のシート名を配列で渡します。以下のサンプルコードでは、Sheet1とSheet4という名前のシートを削除します。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
Public Sub test()
    '削除時のダイアログを非表示にする。
    Application.DisplayAlerts = False
    
    'Sheet1、Sheet4という名前のシートを削除する。
    ThisWorkbook.Sheets(Array("Sheet1", "Sheet4")).Delete
    
    'ダイアログの表示モードをもとにもどす。
    Application.DisplayAlerts = True
End Sub 

シートのインデックスを指定して削除(1シート)

以下のサンプルコードでは、左から2番目のシートを削除します。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
Public Sub test()
    '削除時のダイアログを非表示にする。
    Application.DisplayAlerts = False
    
    'Sheet3という名前のシートを削除する。
    ThisWorkbook.Sheets(2).Delete
    
    'ダイアログの表示モードをもとにもどす。
    Application.DisplayAlerts = True
End Sub 

シートのインデックスを指定して削除(複数シート)

複数シートを削除する場合、対象のシートのインデックスを配列で渡します。以下のサンプルコードでは、左から2番目と3番目のシートを削除します。

VBA(実行可能なサンプルコード)
1
2
3
4
5
6
7
8
9
10
11
12
Option Explicit
 
Public Sub test()
    '削除時のダイアログを非表示にする。
    Application.DisplayAlerts = False
    
    '左から2番目と3番目のシートを削除する。
    ThisWorkbook.Sheets(Array(2, 3)).Delete
    
    'ダイアログの表示モードをもとにもどす。
    Application.DisplayAlerts = True
End Sub 
スポンサーリンク
スポンサーリンク