指定したシート名を検索して、シート名が存在すれば、そのシート名のWorksheetを取得。
無い場合は、Nothingを戻す。
【サンプルプログラム】
Sub Sample2()
Dim wb As Workbook
Dim ws As Worksheet
Dim filename As String
Dim sheetname As String
' Sheetを検索するファイル
filename = "C:\ExcelVBA\シート名の確認\Sample.xlsx"
' 探すSheet名
sheetname = "星座"
If IsFileExists(filename) = True Then ' ファイルの有無を確認
Set wb = Workbooks.Open(filename) ' ブックを開く
Set ws = GetSheetsObject(wb, sheetname) ' シートを取得
If Not (ws Is Nothing) Then
' 処理を記載する
' 例:取得したシートをアクティブにする
ws.Activate
Else
' Sheetが存在しない場合
MsgBox sheetname & "は存在しません", vbExclamation
End If
Else
' ファイルが存在しない場合
MsgBox filename & "は存在しません", vbExclamation
End If
End Sub
【関数化】
' Sheet名から Worksheet オブジェクトを取得する
Function GetSheetsObject(wb As Workbook, sheetname As String) As Worksheet
Dim idx1 As Integer
Dim ws As Worksheet
Set ws = Nothing
For idx1 = 1 To wb.Sheets.Count
If sheetname = wb.Sheets(idx1).Name Then
' 探しているSheetが見つかった場合SheetのObjectを返す
Set GetSheetsObject = wb.Sheets(idx1)
' 見つかったので関数を抜ける
Exit Function
End If
Next
Set GetSheetsObject = ws
End Function


コメント