Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » VBAでシート名をワイルドカード指定する

VBAでシート名をワイルドカード指定する

対象:Excel 2010, Excel 2013, Windows版Excel 2016

「マクロ シート名 指定 一部」
「vba シート名 指定の文字列を含む 条件文」
といった検索キーワードでアクセスがありました。

名前に指定した文字列が含まれるシートを指定したい、ワイルドカードを使ってシート名を指定したい、という要望です。

「特定のシート名 繰り返す マクロ」
という検索キーワードも同様でしょう。

[スポンサードリンク]

シート名をワイルドカード指定するサンプルマクロ

以下のSubプロシージャを実行すると、シート名に「マスター」という文字列の含まれるシートが、順番に選択され、そのシート名がメッセージボックスに表示されます。

Sub シート名をワイルドカード指定するサンプル()
 Const FIND_STR = "マスター"

 Dim sh As Object
 For Each sh In Sheets
  If sh.Name Like "*" & FIND_STR & "*" Then
   sh.Select
   MsgBox sh.Name
  End If
 Next sh
End Sub

シート名をワイルドカード指定するサンプルで行っている処理

すべてのシートに対して、For Each~Nextループを回して、
  Dim sh As Object
  For Each sh In Sheets

シートの名前が、定数FIND_STRに指定された文字列を含んでいるかを、ワイルドカード「*」とLike演算子を使って調べています。
   If sh.Name Like "*" & FIND_STR & "*" Then

上記のSubプロシージャでは、全てのシートにループ処理を行っていますが、ワイルドカード指定で見つかった最初のシートにだけ処理をしたいのなら、
   End If
の前に、「Exit Sub」などを入れてループを抜けてください。

最終更新日時:2019-01-12 05:41

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » VBAでシート名をワイルドカード指定する

「Sheets・Worksheet」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.