【VBA】シート番号でシートにアクセスするとき、そのシート番号が存在するかどうかを確認する

シートを取得するには以下のような方法があります。

Set ws = wb.Worksheets("Sheet1")

Set ws = wb.Worksheets(1)

シート名で指定するとき、この記事のようにエラーハンドリングをします。

シート番号のときは以下のように書きます。

Sub AccessSheet()
    Dim sheetIndex As Long
    Dim ws As Worksheet
    sheetIndex = 5 ' 5番目のシートにアクセスしたい場合

    ' シートの総数をチェックして、存在するシート番号か確認する
    If sheetIndex > 0 And sheetIndex <= ThisWorkbook.Sheets.Count Then
        Set ws = ThisWorkbook.Sheets(sheetIndex)

        ' 好きな処理
        MsgBox "シート名: " & ws.Name, vbInformation
    Else
        MsgBox "指定されたシート番号は存在しません。", vbExclamation
    End If
End Sub

sheetIndex=

Sub AccessSheet()
    Dim sheetIndex As Long
    Dim ws As Worksheet
    sheetIndex = 5 ' 5番目のシートにアクセスしたい場合

    ' シートの総数をチェックして、存在するシート番号か確認する
    If sheetIndex > 0 And sheetIndex <= ThisWorkbook.Sheets.Count Then
        Set ws = ThisWorkbook.Sheets(sheetIndex)

        ' 好きな処理
        MsgBox "シート名: " & ws.Name, vbInformation
    Else
        MsgBox "指定されたシート番号は存在しません。", vbExclamation
    End If
End Sub

シート番号が5のとき、メッセージボックスを表示します。

‘ 好きな処理 とあるところを書き換えて使ってみてください。

ThisWorkbook.Sheets.Countでブックのシート数を取得していますが、頻出なので覚えましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA