• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロでシートの選択について)

エクセルのマクロでシートの選択について

このQ&Aのポイント
  • WinXP SP3で使用しているEXCEL 2003のマクロについて、目次以外のシートを選択する方法について教えてください。
  • 現在のマクロでは、目次以外のシートを全て選択することはできますが、シートの数が増えた場合にエラー終了してしまいます。
  • Arrayを使用せずに、目次以外のシートを全て選択する方法を教えてください。また、マクロはVBEで簡単に実行できる状態にしていただけると幸いです。

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

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

For i = i To 6 を For i = i To sheets.count にしてください。

noname#244288
質問者

お礼

どうもありがとうございました できました

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

Sub test01() MsgBox Sheets.Count End Sub (長々質問文を書いているが)Sheets.Count を知らないだけでは。 数える、掴むという観点から、VBAの概説書を読んで 智識を整理してはどうです。 Sub test02() For Each sh In Worksheets MsgBox sh.Name Next End Sub も便利です。

noname#244288
質問者

お礼

回答およびご指摘ありがとうございます おっしゃるとおりVBAの概説書を読んで勉強します ありがとうございました

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

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まで存在することが必要です。

noname#244288
質問者

お礼

回答どうもありがとうございました こちらもやってみたところ無事にできました

関連するQ&A