- ベストアンサー
VBA 複数シート選択について
Sub test() Dim i As Integer i = ActiveWorkbook.Worksheets.Count Worksheets(Array(2, i)).Select End Sub シート2とシートi の選択ではなく、2~iまでの複数シート を選択するにはどのように書くのかご教示下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 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 でも良いのでしょうか
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >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
お礼
Wendy02さん、回答ありがとうございます。いつも拝見、参考にさせていただいてます。VBAは最近始めたばかりで教えて頂いたコードは まだ理解できません。勉強しますので今後とも宜しく。
- akirinchan
- ベストアンサー率29% (9/31)
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
お礼
回答、有難うございます。参考にさせていただきます。 今後とも宜しく。
お礼
回答、有難うございます。VBAの勉強を始めたばかりですが なんとなく解ります。参考にさせていただきます。