ここから本文です

エクセル VBAの質問です dim i For i = 1 to 2 Worksheets.Add After:=Workshe...

ああああさん

2019/1/2223:28:43

エクセル VBAの質問です
dim i
For i = 1 to 2
Worksheets.Add
After:=Worksheets(Worksheets.Count)

Next i

このコードを入力すると
シートを2枚追加できるのですが、実行するたび

にシートが2枚追加されてしまいます。
1度だけシートを指定した分だけ追加するコードはありませんか?

閲覧数:
37
回答数:
4

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

hat********さん

2019/1/2302:43:19

> 1度だけシートを指定した分だけ追加するコードはありませんか?

例えば、一度だけシートを2枚追加したい。
ということは、言い換えると、
最初は1枚だとして、2枚追加すれば3枚になる。
つまり、シート数が3になるまで追加する。

上記の解釈であっているなら、下記のコードで。


Do until Worksheets.Count = 3
    Worksheets.Add _
    After:=Worksheets(Worksheets.Count)
Loop

質問した人からのコメント

2019/1/23 13:39:48

ありがとうございます! 助かりました!

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

hel********さん

2019/1/2306:56:16

質問のコードでは、

For i = 1 to 2
・・・
Next i

という繰り返し文が書かれていて、1から2まで繰り返すので追加されるシートは2枚となります。3枚であれば、For i=1 To 3 ですね。

その都度、必要な枚数だけ欲しいのであれば、実行時に何枚必要かの数値を入れるようにすれば良いですよね。

Sub Sample()
Dim cnt As Integer
cnt = InputBox("何枚追加しますか?")
Worksheets.Add After:=Sheets(Sheets.Count), Count:=cnt
End Sub

m3_maki0さん

2019/1/2303:59:24

3枚追加するなら

worksheets.Add after:=Worksheets(Worksheets.Count),Count:=3

とか。

InputBox で枚数を指定すれば好きなだけ追加できますね。

プロフィール画像

カテゴリマスター

aka********さん

2019/1/2223:51:21

Worksheets.Add を 2回くりかえすので 2シート追加されるだけです。

1度だけ なら For i = 1 to 2 と くりかえさなければ 良い
ただ 指定した分 とは どういう意味ですか
1度だけなら For i = 1 to 2 が 不要
指定した分だけ繰り返すなら

FOR I=1 TO 指定した回数 と すれば いいだけでは

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる