シート名からシートを検索

指定したシート名を検索して、シート名が存在すれば、そのシート名の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

コメント