- ベストアンサー
エクセルのマクロでシートの選択について
- WinXP SP3で使用しているEXCEL 2003のマクロについて、目次以外のシートを選択する方法について教えてください。
- 現在のマクロでは、目次以外のシートを全て選択することはできますが、シートの数が増えた場合にエラー終了してしまいます。
- Arrayを使用せずに、目次以外のシートを全て選択する方法を教えてください。また、マクロはVBEで簡単に実行できる状態にしていただけると幸いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
For i = i To 6 を For i = i To sheets.count にしてください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
Sub test01() MsgBox Sheets.Count End Sub (長々質問文を書いているが)Sheets.Count を知らないだけでは。 数える、掴むという観点から、VBAの概説書を読んで 智識を整理してはどうです。 Sub test02() For Each sh In Worksheets MsgBox sh.Name Next End Sub も便利です。
お礼
回答およびご指摘ありがとうございます おっしゃるとおりVBAの概説書を読んで勉強します ありがとうございました
- KURUMITO
- ベストアンサー率42% (1835/4283)
Sheets(i).Select の意味はシート見出しにおける左からのシートの番号が1から始まってi 番目のシートを指すことになります。i=1という場合には最も左にあるシートを指すことになりますね。おそらく目次のシートがそうなのでしょう。 したがってお示しの式の場合にはシート見出しで左から2番目から6番目までが選択され作業グループに指定されることになりますね。6番目までのシートが存在しない場合にはエラーになってしまいますね。 ところでご質問の意味はおそらくシートの並び順を言っているのではなく、シート名が1から5までを作業グループにしたいということでしょう。その場合には次のようなマクロにすることがよいでしょう。 Sub Macro1() Dim i As Integer i = 1 Sheets(""& i ).Select For i = i To 5 Sheets(""& i ).Select False Next i End Sub 勿論シート名が1から5まで存在することが必要です。
お礼
回答どうもありがとうございました こちらもやってみたところ無事にできました
お礼
どうもありがとうございました できました