ExcelのVBAで、複数あるシートに対し、現在アクティブとなっている

シート以外は全て非表示にするには、どのような記述をすれば
よいでしょうか。

どうぞよろしくお願い致します。

※Excel2003を使用しております。
※各シート名は固定ではなく任意です。
※シート数も固定数ではありません。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2010/11/15 10:31:51
  • 終了:2010/11/15 16:51:38

ベストアンサー

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492010/11/15 10:59:59

ポイント60pt

アクティブなシートの名前を変数に控えておいて、それ以外を非表示にするという流れになっています

Sub Macro1()
    Dim activeSheetName As String
    
    activeSheetName = ActiveSheet.Name
    For Each s In ActiveWorkbook.Sheets
        If s.Name <> activeSheetName Then s.Visible = False
    Next
End Sub

ついでに、すべてのシートを表示するマクロも作っておきました

Sub Macro2()
    For Each s In ActiveWorkbook.Sheets
        s.Visible = True
    Next
End Sub
id:miku1973

完璧にできました!!!

いるか送ります!!

2010/11/15 16:51:05

その他の回答(1件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492010/11/15 10:59:59ここでベストアンサー

ポイント60pt

アクティブなシートの名前を変数に控えておいて、それ以外を非表示にするという流れになっています

Sub Macro1()
    Dim activeSheetName As String
    
    activeSheetName = ActiveSheet.Name
    For Each s In ActiveWorkbook.Sheets
        If s.Name <> activeSheetName Then s.Visible = False
    Next
End Sub

ついでに、すべてのシートを表示するマクロも作っておきました

Sub Macro2()
    For Each s In ActiveWorkbook.Sheets
        s.Visible = True
    Next
End Sub
id:miku1973

完璧にできました!!!

いるか送ります!!

2010/11/15 16:51:05
id:jccrh1 No.2

jccrh1回答回数111ベストアンサー獲得回数192010/11/15 12:12:42

ポイント10pt

以下のVBAでできるかと思います。

Sub シート非表示()
  Dim シート As Worksheet
  For Each シート In Sheets
   If シート.Name <> ActiveSheet.Name Then
     シート.Visible = xlSheetHidden
   End If
  Next
End Sub

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません