プロが教える店舗&オフィスのセキュリティ対策術

VBAの勉強をし始めたばかりものものです。
ワークシートの数が10枚になるまでワークシートの挿入を繰り返すように、以下のVBAを作成しました。

Sub wsins()
Dim i As Integer
For i = Worksheets.Count To 10 Step 1
Sheets.Add
Next
End Sub

しかし、上記の方法だと、ワークシートが11枚になってしまいます。
もちろん10のところを9にすることによって、ワークシートがトータルで10枚にはなるのですが、理由がわかりません。
勉強したばかりで、思い違いをしているのかと思いますが、教えていただけないでしょうか?よろしくお願いいたします。

A 回答 (3件)

Sub シート()


Dim i As Integer
i = Worksheets.Count
Do Until i = 10
  Sheets.Add
  i = i + 1
Loop
End Sub

これではどうでしょうか?もっとスマートな方法があるかもしれませんが・・・。
    • good
    • 0
この回答へのお礼

ありがとうございます。
Do Until~Loop
はちょうど勉強していたところでしたので、とっても役に立ちました。
本当にありがとうございました。

お礼日時:2004/08/18 12:40

たびたびすみません。

下記のような方法もありますね。

Sub シート()
Dim a As Integer
a = 10 - Worksheets.Count
Sheets.Add Count:=a
End Sub
    • good
    • 0
この回答へのお礼

Count:=a
がまだ理解できていないようですので、勉強しなおします。
本当にありがとうございました。

お礼日時:2004/08/18 12:42

For i = Worksheets.Count To 10 Step 1では、iが10になった直後に、もう一度Sheets.addを実行してしまうからですね。

この回答への補足

なるほどわかりました。
では、10という数字を使って、記述するにはどのようにすればよいでしょうか?
お手数ですが、教えていただけませんか?よろしくお願いいたします。

補足日時:2004/08/18 12:18
    • good
    • 0

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