• ベストアンサー

VBA 複数シート選択について

Sub test() Dim i As Integer i = ActiveWorkbook.Worksheets.Count Worksheets(Array(2, i)).Select End Sub シート2とシートi の選択ではなく、2~iまでの複数シート を選択するにはどのように書くのかご教示下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • boy_boy
  • ベストアンサー率55% (56/101)
回答No.1

こんにちは。 2番目のシートから最後のシートまでという事なら Sub test() Dim i As Integer  If ActiveWorkbook.Worksheets.Count < 2 Then Exit Sub  For i = 2 To ActiveWorkbook.Worksheets.Count   Worksheets(i).Select (False)  Next i End Sub でも良いのでしょうか

noname#63022
質問者

お礼

回答、有難うございます。VBAの勉強を始めたばかりですが なんとなく解ります。参考にさせていただきます。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 >Worksheets(Array(2, i)).Select 配列の作り方が違っていますね。 #1 さんの.Select False を私も使いますが、元のご質問のコードを生かすなら、このようになります。アイデアは良いと思います。 ただし、ご存知のように、index で取っていますから、複数シートの左側から順番に数えるようになります。 参考までに。 Sub test() Dim i As Integer Dim j As Integer Dim n As Integer Dim ar() As Variant  n = Worksheets.Count  If n = 1 Then Exit Sub 'シートひとつしかない場合  ReDim ar(n - 2)  For i = 2 To n   ar(j) = i   j = j + 1  Next i  Worksheets(ar()).Select End Sub

noname#63022
質問者

お礼

Wendy02さん、回答ありがとうございます。いつも拝見、参考にさせていただいてます。VBAは最近始めたばかりで教えて頂いたコードは まだ理解できません。勉強しますので今後とも宜しく。

回答No.2

Sub test() Dim s_nm() As String Dim idx As Long idx = 0 For Each sht In Worksheets If Val(sht.Name) > 1 Then ReDim Preserve s_nm(idx) s_nm(idx) = sht.Name idx = idx + 1 End If Next Sheets(s_nm).Select End Sub

noname#63022
質問者

お礼

回答、有難うございます。参考にさせていただきます。 今後とも宜しく。

関連するQ&A