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」を検索して、一致したシートを色付けするという感じです。
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」を検索して、塗りつぶしできました。
シート名を部分一致で検索
シート名を部分一致で検索してみます。
部分一致で検索したい場合は、「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」を含むシートを検索できました。
シート名が部分一致したらシート名を色付け
シート名が部分一致したら、シートを色付けしてみます。
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