
ExcelVBA 特定のワークシートを明示的に指定して操作することで、意図しないシートの編集を防ぐ。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
目次
Excel VBA 特定のワークシートを明示的に指定|シーン
以下のシーンで利用します。
1.特定のシートのデータを編集・参照したい。
2.複数のシートを切り替えて処理したい。
3.シート名の変更によるエラーを防ぐため、インデックスやコード名を使いたい。
Excel VBA 特定のワークシートを明示的に指定|使い方と注意点
1. シート名で指定( Sheets("Sheet1") または Worksheets("Sheet1") )
2. インデックス番号で指定( Sheets(1) )
3. コードネームで指定( Sheet1 )
・Sheets() は グラフシートも含む
・Worksheets() は ワークシートのみ
シート名は変更されるとエラーになるため、コードネームを使うと安全
Excel VBA 特定のワークシートを明示的に指定|サンプルコード
Option Explicit
Sub SelectSheetByName()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' "Sheet1" を指定(名前変更に注意)
ws.Activate
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
標準モジュール(インデックス番号で指定)ブック内の並び順でシートを指定します。シートの並びが変わると別のシートが選ばれます。
Option Explicit
Sub SelectSheetByIndex()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(1) ' 1番目のシートを指定
ws.Activate
End Sub
標準モジュール(コードネームで指定)シート名を変更してもエラーになりません。
Option Explicit
Sub SelectSheetByCodeName()
Sheet1.Activate ' VBEのプロジェクトでのコードネームを指定
End Sub
標準モジュール(シートを作成・選択)新しいシートを作成してアクティブにします。
Option Explicit
Sub CreateAndSelectSheet()
Dim ws As Worksheet
' 新しいシートを追加
Set ws = ThisWorkbook.Sheets.Add
ws.Name = "NewSheet"
ws.Activate
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
標準モジュール(シートが存在するか確認)エラーを防いで安全にシートを確認します。
Option Explicit
Function SheetExists(sheetName As String) As Boolean
Dim ws As Worksheet
On Error Resume Next
Set ws = ThisWorkbook.Sheets(sheetName)
SheetExists = Not ws Is Nothing
On Error GoTo 0
End Function
Sub CheckSheet()
If SheetExists("Sheet1") Then
MsgBox "シートが存在します!"
Else
MsgBox "シートが見つかりません!"
End If
End Sub
Excel VBA 特定のワークシートを明示的に指定|まとめ
指定方法 | コード | メリット | デメリット |
シート名 | Sheets("Sheet1") | 直感的にわかりやすい | 名前変更でエラー |
インデックス | Sheets(1) | 簡単に取得可能 | 並び順変更で別シートを選ぶ |
コードネーム | Sheet1 | 名前変更でもエラーなし | VBEで設定が必要 |
基本はコードネームを使うのが安全。シート名が変わる可能性があるなら、 SheetExists で確認します。
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。