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

エクセル2010を使用しています。

シートが100個あったとして、
下のコードで1~100番までは
コマンドボタンを押すことで、シート名を
変えることができました。

ところがコードの 1 To・・・を
101 To・・・に変えても101~200番には
ならないのです。
私がコードを書く時はてっきりこれで大丈夫だと
思っておりましたが・・・意味をはきちがえているみたいです。

どなたか数値を変えれば
何番でも対応できるコードを解説付きでお教えください。


Private Sub CommandButton3_Click()
Dim i As Long
For i = 1 To Sheets.Count
Sheets(i).Name = i
Next
End Sub

A 回答 (2件)

方法1:


「1枚目」のシートの名前を101に,「2枚目」のシートの名前を102にする
Private Sub CommandButton3_Click()
 Dim i As Long
 For i = 1 To Sheets.Count
  Sheets(i).Name = i + 100
 Next i
End Sub


方法2:
101をスタートに連番を振っていく

サンプル1:
Private Sub CommandButton3_Click()
 Dim i As Long
 dim s as long
 s = 101
 For i = 1 To Sheets.Count
  Sheets(i).Name = s
  s = s +1
 Next i
End Sub

サンプル2:
Private Sub CommandButton3_Click()
 dim w as worksheet
 dim s as long
 s = 101
 for each w in worksheets
  w.name = s
  s = s +1
 Next
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます!
方法2で完璧です。私も応用力を身に着けたいものです・・・
またわからなくなったら質問させてください。

お礼日時:2011/05/24 11:45

例えば下記をやるとOK(当初はは3シート有り)


実行後、103のシートの名前を見届けた。
数字のままだと早いうちにエラーでとまった。
文字列+数字や文字列数字にすべきということではないかな。
Private Sub test02()
Dim i As Long
Worksheets.Add Count:=100
For i = 1 To Sheets.Count
Sheets(i).Name = Trim(Str(i))
Next
End Sub
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
既存の100個のシートにはすべてデータが入っており、
新しいシートを作りながら、名前をつけながらというわけではないのです。
コピーを終えた100個のシートに名前だけ連番でつけたかったのです。
説明が足りず申し訳ないです。

お礼日時:2011/05/24 11:49

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