Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » VBAでシートがアクティブかを判定するには

VBAでシートがアクティブかを判定するには

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2411(ビルド18217.20000クイック実行)ベータチャネル

「vba シート アクティブ 判定」
といった検索キーワードでアクセスがありました。

Excel VBAで、いずれかのシートがアクティブかどうかを判定するには、どのようなコードを書けばいいのかを調べていた方による検索でしょう。

[スポンサードリンク]

Is演算子でアクティブシートを判定するサンプルマクロ

複数シートの存在するブックがアクティブな状態で、以下のExcelマクロを実行してください。

シート名が順番にメッセージボックスに表示され、アクティブシートの場合だけ、メッセージボックスに表示されたシート名の後ろに「←このシートがアクティブ」と付加されます。

Sub アクティブシートを判定する__Is演算子で判定()
 Dim msg As String
 Dim sht As Object
 For Each sht In Sheets
  If sht Is ActiveSheet Then ' Is演算子で判定
   msg = " ←このシートがアクティブ"
  Else
   msg = ""
  End If
  MsgBox sht.Name & msg
 Next
End Sub

For Each~Nextループ内の以下の行で、アクティブシートかを判定しています。

  If sht Is ActiveSheet Then

オブジェクト変数shtと、ActiveSeetプロパティの戻り値が同じかを、Is演算子で判定しています。

シート名でアクティブシートを判定するサンプルマクロ

オブジェクト変数などが苦手な場合は、以下のようなシート名を使った判定がわかりやすいはずです。

Sub アクティブシートを判定する__シート名で判定()
 Dim msg As String
 Dim i As Long
 For i = 1 To Sheets.Count
  If Sheets(i).Name = ActiveSheet.Name Then 'シート名が等しいかで判定
   msg = " ←このシートがアクティブ"
  Else
   msg = ""
  End If
  MsgBox Sheets(i).Name & msg
 Next
End Sub

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » VBAでシートがアクティブかを判定するには

「Sheets・Worksheet」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.