Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » Excel VBAで表示されている全シートを選択する

Excel VBAで表示されている全シートを選択する

対象:Excel2007, Excel2010, Excel2013

「excel vba 表示されている全シート選択」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

表示されているすべてのシートを選択するExcel VBA(Visual Basic for Applications)のコードを探している方による検索です。

すべてのシートが表示されているのであれば、SheetsコレクションオブジェクトのSelectメソッドを使うことで、ループ処理を行わなくても全シートを選択することができます。
しかし、表示されていないシートが存在する場合には「Sheets.Select」では実行時エラーが発生してしまいます。

「excel vba 表示されている全シート選択」
という検索キーワードは、その回避策を探していた方によるものかもしれません。

[スポンサードリンク]

For Each~Nextループで表示されているシートだけを選択するサンプルマクロ

以下のようなマクロで、表示されているシートだけを選択することができます。

Sub 表示されているシートを選択する_オブジェクト変数()

 Dim sh As Object
 For Each sh In Sheets
  If sh.Visible Then
   sh.Select Replace:=False
  End If
 Next

End Sub

アクティブなブックの全シートにFor Each~Nextループを回して、
 For Each sh In Sheets

シートが表示されているときに、
  If sh.Visible Then

既に選択されているシートに追加する形で、選択を行っています。
   sh.Select Replace:=False

For~Nextループで表示されているシートだけを選択するサンプルマクロ

上記のFor Each~Nextループを使うマクロが実務上はいいとは思いますが、VBAの学習という観点からは、カウンタ変数を使うFor~Nextループでも同じことができるということを確認しておくことをおすすめします。

Sub 表示されているシートを選択する_カウンタ変数()

 Dim i As Long
 For i = 1 To Sheets.Count
  If Sheets(i).Visible Then
   Sheets(i).Select Replace:=False
  End If
 Next

End Sub

考え方は先のFor Each~Nextループと、もちろん同じです。

1枚目のシートから最後のシートまでFor~Nextループを回して
 For i = 1 To Sheets.Count

そのシートが表示されているときに、
  If Sheets(i).Visible Then

追加で選択を行っています。
   Sheets(i).Select Replace:=False

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Sheets・Worksheet » Excel VBAで表示されている全シートを選択する

「Sheets・Worksheet」の記事一覧

検索


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