プロが教えるわが家の防犯対策術!

Excelマクロの初心者です。
Sheet1~50を、変数を用いて順に選択したく
Dim i as Integer
For i = 1 to 50
Sheets("Sheet"&i).Select
Next i
としたところ、
『実行時エラー'9':インデックスが有効範囲にありません』となってしまいます。
勉強不足なものでどこがいけないのか、どう修正すればよいかわからず困っています。
よろしくお願いします。

A 回答 (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 と習慣づけるようにしたほうがよいです。
    • good
    • 1
この回答へのお礼

ありがとうございます。
SheetとWorksheetの違いも分かっていなくて、もっと勉強しなきゃいけないなと思いました。
解決方法だけではなくアドバイスもいただけて、非常に感謝しています。
本当にありがとうございました。

お礼日時:2007/10/28 10:54

シート名は、


>Sheet1~50
で間違いないですか?

名前を変更しているけど、左端から1~50にあたるシートを選択なら、
Sheets(i).Select
でもよいはずです。
    • good
    • 0
この回答へのお礼

Sheets(i).Select
にしたところ、できました!!!

上記のシート選択の作業を60回以上やらなければならなかったので、
本当に助かります。

本当に本当にありがとうございました。

お礼日時:2007/10/28 10:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています