「excel vba 表示されている全シート選択」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
表示されているすべてのシートを選択するExcel VBA(Visual Basic for Applications)のコードを探している方による検索です。
すべてのシートが表示されているのであれば、SheetsコレクションオブジェクトのSelectメソッドを使うことで、ループ処理を行わなくても全シートを選択することができます。
しかし、表示されていないシートが存在する場合には「Sheets.Select」では実行時エラーが発生してしまいます。
「excel vba 表示されている全シート選択」
という検索キーワードは、その回避策を探していた方によるものかもしれません。
For Each~Nextループで表示されているシートだけを選択するサンプルマクロ
以下のようなマクロで、表示されているシートだけを選択することができます。
Dim sh As Object
For Each sh In Sheets
If sh.Visible Then
sh.Select Replace:=False
End If
Next
アクティブなブックの全シートにFor Each~Nextループを回して、
For Each sh In Sheets
シートが表示されているときに、
If sh.Visible Then
既に選択されているシートに追加する形で、選択を行っています。
sh.Select Replace:=False
For~Nextループで表示されているシートだけを選択するサンプルマクロ
上記のFor Each~Nextループを使うマクロが実務上はいいとは思いますが、VBAの学習という観点からは、カウンタ変数を使うFor~Nextループでも同じことができるということを確認しておくことをおすすめします。
Dim i As Long
For i = 1 To Sheets.Count
If Sheets(i).Visible Then
Sheets(i).Select Replace:=False
End If
Next
考え方は先の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で表示されている全シートを選択する