« シート挿入あれこれ 3 | トップページ | 任意の日付から任意の日付までを一列にセルに入れる »

2010年3月17日 (水)

シート名を検索、条件を満たしたシートを削除

記事「シート挿入あれこれ 3 」では、
macro103016a、macro103016a2、macro103016a3、macro103016a4、…
と番号を付けてシートを挿入していきました。

今度は、逆に
シート名に文字列"macro103016a"を含むシートを削除します。

シート名の検索には、 If文とLike演算子を組み合わせて使います。

"macro100316a*"

のようにワイルドカードを使います。

下のコードでは、
shname = "macro100316a"でシート名に含まれる文字列を指定して、
あとから「& "*"」として
ワイルドカードを文字列に加えて使っています。

コードはこちら

シート名を検索、条件に合えば削除するコード:

Sub macro100317a()
'現在のWorkbookに
'"macro100316a*"の条件に合うSheetがないか調べる。
'あれば、削除する
   
    Dim sh As Worksheet
    Dim shname As String
    shname = "macro100316a"
   
    For Each sh In Worksheets
        If sh.Name Like shname & "*" Then
            Application.DisplayAlerts = False
            sh.Delete
            Application.DisplayAlerts = True
        End If
    Next sh
   
End Sub

Like演算子は、*のほかにも?や#なども使えます。

?は任意の1文字、#は任意の1文字の数字を表します。

VBAヘルプのLike演算子の頁に
*、?、#の詳しい説明があります。

|

« シート挿入あれこれ 3 | トップページ | 任意の日付から任意の日付までを一列にセルに入れる »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: シート名を検索、条件を満たしたシートを削除:

« シート挿入あれこれ 3 | トップページ | 任意の日付から任意の日付までを一列にセルに入れる »