- ベストアンサー
Excelマクロ シート名を変数で指定
Excelマクロの初心者です。 Sheet1~50を、変数を用いて順に選択したく Dim i as Integer For i = 1 to 50 Sheets("Sheet"&i).Select Next i としたところ、 『実行時エラー'9':インデックスが有効範囲にありません』となってしまいます。 勉強不足なものでどこがいけないのか、どう修正すればよいかわからず困っています。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 インデックスで回していくときは、以下のように変えたほうがよいです。 >Dim i as Integer >For i = 1 to 50 > Sheets("Sheet"&i).Select >Next i ↓ Dim i as Integer For i = 1 to Worksheets.Count 'またはシートの数 Worksheets(i).Select '--処理--- Next i インデックスは、シート・タブの左から順番に数えていく方法です。 なお、Sheet と Worksheet は、同意義でありません。Sheet は、ワークシート、グラフシート、マクロシート・ダイアログシートの4つがあります。分かりきっていても、ワークシートの場合は、Worksheet と習慣づけるようにしたほうがよいです。
その他の回答 (1)
- n-jun
- ベストアンサー率33% (959/2873)
シート名は、 >Sheet1~50 で間違いないですか? 名前を変更しているけど、左端から1~50にあたるシートを選択なら、 Sheets(i).Select でもよいはずです。
お礼
Sheets(i).Select にしたところ、できました!!! 上記のシート選択の作業を60回以上やらなければならなかったので、 本当に助かります。 本当に本当にありがとうございました。
お礼
ありがとうございます。 SheetとWorksheetの違いも分かっていなくて、もっと勉強しなきゃいけないなと思いました。 解決方法だけではなくアドバイスもいただけて、非常に感謝しています。 本当にありがとうございました。