
ExcelVBA 特定のワークシートを明示的に指定して操作することで、意図しないシートの編集を防ぐ。使い方や注意点など、サンプルコードをもとに具体的に解説します。
2025年の目標は繰り返し作業に悩まされない年にしませんか? Excel VBAを活用した効率化がその第一歩
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事
目次
Excel VBA 特定のワークシートを明示的に指定|シーン
以下のシーンで利用します。
1.特定のシートのデータを編集・参照したい。
2.複数のシートを切り替えて処理したい。
3.シート名の変更によるエラーを防ぐため、インデックスやコード名を使いたい。
Excel VBA 特定のワークシートを明示的に指定|使い方と注意点
1. シート名で指定( Sheets("Sheet1") または Worksheets("Sheet1") )
2. インデックス番号で指定( Sheets(1) )
3. コードネームで指定( Sheet1 )
・Sheets() は グラフシートも含む
・Worksheets() は ワークシートのみ
シート名は変更されるとエラーになるため、コードネームを使うと安全
Excel VBA 特定のワークシートを明示的に指定|サンプルコード
Excel VBAで効率化の準備をしてみませんか?2025年をよりスムーズに過ごすための資格
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
標準モジュール(シート名で指定)指定シートをアクティブにします。シート名が変わるとエラーになります。
Option Explicit
Sub SelectSheetByName()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1") ' "Sheet1" を指定(名前変更に注意)
ws.Activate
End Sub
標準モジュール(インデックス番号で指定)ブック内の並び順でシートを指定します。シートの並びが変わると別のシートが選ばれます。
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
標準モジュール(シートが存在するか確認)エラーを防いで安全にシートを確認します。
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で自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。