大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、シート名を検索するには、シートをループして、一致するシート名があるかを判定します。部分一致で検索したい場合は、「InStr」を使うとできます。シート名を検索する方法について、マスターしていきましょう。

はじめに

この記事では、シート名を検索する方法について、ご紹介します。

シートを検索するには、シートをループして、一致するシート名があるかを判定するとできます。

部分一致で検索したい場合は、「InStr」を使うとできます。

シート名を検索する方法について、マスターしていきましょう。

では、シート名を検索する方法について、解説していきます。

この記事を読むメリット

  • シート名を完全一致や部分一致で検索する方法がわかります。

目次から見たい項目へ移動すると便利ですよ。

目次

シート名を完全一致で検索

シート名を完全一致で検索してみます。

同じシート名を検索

同じシート名を検索するVBAコードです。

Sub TEST1()
  
  Dim Flag
  Flag = 0
  For i = 1 To Sheets.Count
    If Sheets(i).Name = "Sheet2" Then
      Flag = 1 'シートが存在する場合
    End If
  Next
  
  'シートが存在する場合
  If Flag = 1 Then
    Debug.Print "Sheet2は存在します"
  'シートが存在しない場合
  Else
    Debug.Print "Sheet2は存在しません"
  End If
  
End Sub

「For Each」を使う場合は、次のようになります。

Sub TEST2()
  
  Dim Flag, A
  Flag = 0
  For Each A In Sheets
    If A.Name = "Sheet2" Then
      Flag = 1 'シートが存在する場合
    End If
  Next
  
  'シートが存在する場合
  If Flag = 1 Then
    Debug.Print "Sheet2は存在します"
  'シートが存在しない場合
  Else
    Debug.Print "Sheet2は存在しません"
  End If
  
End Sub

では、実行してみます。

シートを検索

「Sheet2」を検索してみます。

「Sheet2」を検索してみます

実行すると、「Sheet2」を検索できます。

「Sheet2」を検索できました

「Sheet2」を検索できました。

シート名が一致したらシート名を色付け

シート名が一致したらシート名を色付けしてみます。

「Sheet2」を検索して、一致したシートを色付けするという感じです。

Sub TEST3()
  
  For i = 1 To Sheets.Count
    'シート名が、「Sheet2」の場合
    If Sheets(i).Name = "Sheet2" Then
      'シートを塗りつぶし
      Sheets(i).Tab.Color = RGB(255, 255, 0)
    End If
  Next
  
End Sub

「For Each」を使う場合は、次のようになります。

Sub TEST4()
  
  Dim A
  For Each A In Sheets
    'シート名が、「Sheet2」の場合
    If A.Name = "Sheet2" Then
      'シートを塗りつぶし
      A.Tab.Color = RGB(255, 255, 0)
    End If
  Next
  
End Sub

では、実行してみます。

シートを検索して、塗りつぶし

「Sheet2」を検索して、塗りつぶししてみます。

「Sheet2」を検索して、塗りつぶししてみます

実行すると、「Sheet2」を検索して、塗りつぶしできます。

「Sheet2」を検索して、塗りつぶしできました

「Sheet2」を検索して、塗りつぶしできました。

シート名を部分一致で検索

シート名を部分一致で検索してみます。

部分一致で検索したい場合は、「InStr」を使います。

検索値を含むシートを検索

検索値を含むシートを検索するVBAコードです。

Sub TEST5()
  
  Dim Flag
  Flag = 0
  For i = 1 To Sheets.Count
    If InStr(Sheets(i).Name, "2") > 0 Then
      Flag = 1 '「2」を含むシートが存在する場合
    End If
  Next
  
  '条件分岐
  If Flag = 1 Then
    Debug.Print "「2」を含むシートは存在します"
  Else
    Debug.Print "「2」含むシートは存在しません"
  End If
  
End Sub

「For Each」を使って検索する場合は、次のようになります。

Sub TEST6()
  
  Dim Flag, A
  Flag = 0
  For Each A In Sheets
    If InStr(A.Name, "2") > 0 Then
      Flag = 1 '「2」を含むシートが存在する場合
    End If
  Next
  
  '条件分岐
  If Flag = 1 Then
    Debug.Print "「2」を含むシートは存在します"
  Else
    Debug.Print "「2」を含むシートは存在しません"
  End If
  
End Sub

では、実行してみます。

部分一致でシート名を検索

「2」を含むシートを検索してみます。

「2」を含むシートを検索してみます

実行すると、「2」を含むシートを検索できます。

「2」を含むシートを検索できました

「2」を含むシートを検索できました。

シート名が部分一致したらシート名を色付け

シート名が部分一致したら、シートを色付けしてみます。

Sub TEST7()
  
  For i = 1 To Sheets.Count
    'シート名に、「2」を含む場合
    If InStr(Sheets(i).Name, "2") > 0 Then
      'シートを塗りつぶし
      Sheets(i).Tab.Color = RGB(255, 255, 0)
    End If
  Next
  
End Sub

「For Each」を使う場合は、次のようになります。

Sub TEST8()
  
  Dim A
  For Each A In Sheets
    'シート名に、「2」を含む場合
    If InStr(A.Name, "2") > 0 Then
      'シートを塗りつぶし
      A.Tab.Color = RGB(255, 255, 0)
    End If
  Next
  
End Sub

では、実行してみます。

部分一致で検索して、塗りつぶし

「2」を含むシートを検索して、塗りつぶししてみます。

「2」を含むシートを検索して、塗りつぶししてみます

実行すると、「2」を含むシートを検索して、塗りつぶしできます。

「2」を含むシートを検索して、塗りつぶしできました

「2」を含むシートを検索して、塗りつぶしできました。

おわりに

この記事では、シート名を検索する方法について、ご紹介しました。

シートを検索するには、シートをループして、一致するシート名があるかを判定するとできます。

部分一致で検索したい場合は、「InStr」を使うとできます。

シート名を検索する方法について、マスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す