特定のシートを参照したいとき、いきなり、そのシートを名指しで参照しても
存在しなければエラーになりますので、事前に確認しようというわけです。
指定したシートが存在するか確認するユーザ定義関数 FNC_SheetCheck を作成しました。
引数としてワークブックオブジェクトと、確認するシート名を指定します。
ワークブックを指定しないと、現在アクティブとなっているブック内を調べることになりますので、調査対象のブックも指定した方がよかろうということで引数にしています。
動作確認として、プロシージャ TestSheetCheck を起動すると、FNC_SheetCheck を呼び出し、アクティブブック内にシート名"Sheet1"を捜して、結果をメッセージボックスに表示します。
'--------------------------------------------------
Sub TestSheetCheck()
'ユーザ定義関数「FNC_SheetCheck」の動作確認用
'アクティブブック内にシート名"Sheet1"があるか確認します。
Dim objBOOK As Workbook
Dim SheetNAME As String
Dim msg As String
Set objBOOK = ActiveWorkbook
SheetNAME = "Sheet1"
If FNC_SheetCheck(objBOOK, SheetNAME) Then
msg = " は、存在します。"
Else
msg = " は、存在しません。"
End If
MsgBox objBOOK.Name & " に " & SheetNAME & msg
Set objBOOK = Nothing
End Sub
'--------------------------------------------------
Function FNC_SheetCheck(objBOOK As Workbook, SheetNAME As String) As Boolean
'ワークブックオブジェクト(objBOOK)内に
'シート名(SheetNAME)があるか確認します。
'シート名の あり = true / 無し= false を返します。
Dim s As Byte
FNC_SheetCheck = False
For s = 1 To objBOOK.Worksheets.Count
If objBOOK.Worksheets(s).Name = SheetNAME Then
FNC_SheetCheck = True
Exit For
End If
Next s
End Function
'--------------------------------------------------