Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5338 / 13644 ツリー ←次へ | 前へ→

【51429】ワークシート自動追加のシートを選択 おやじvba若葉マーク 07/9/16(日) 23:36 質問[未読]
【51430】Re:ワークシート自動追加のシートを選択 かみちゃん 07/9/16(日) 23:53 発言[未読]

【51429】ワークシート自動追加のシートを選択
質問  おやじvba若葉マーク  - 07/9/16(日) 23:36 -

引用なし
パスワード
   VBAでたとえば
"あいうえお"というシート名のA列のに入力されている文字をシート名にしてシートを追加して後からそのシートを選択する方法を誰か教えてください。
シート追加は以前
Sheets("あいうえお").Select
Range("a1").Select
Set st = ActiveSheet
For I = 1 To 18
If Sheets("あいうえお").Cells(I, 2).Value = "" Then Exit For
ActiveWorkbook.Worksheets.Add.Name = st.Range("A" & I)
と教えてもらいました。
VBAで追加したシートを選択するにはどうしたらよいのでしょう。

【51430】Re:ワークシート自動追加のシートを選択
発言  かみちゃん  - 07/9/16(日) 23:53 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>"あいうえお"というシート名のA列のに入力されている文字をシート名にしてシートを追加して後からそのシートを選択する方法を誰か教えてください。

提示されたコードの意味はわかっておられますか?
以下のような修正が必要です。

Sub Sample()
 Dim st As Worksheet
 Dim i As Integer
 
' Sheets("あいうえお").Select
' Range("A1").Select
' Set st = ActiveSheet
 Set st = Sheets("あいうえお")
 st.Select
 For i = 1 To 18
'  If Sheets("あいうえお").Cells(i, 2).Value = "" Then Exit For
'  ActiveWorkbook.Worksheets.Add.Name = st.Range("A" & i)
  If st.Cells(i, 2).Value = "" Then Exit For
  ActiveWorkbook.Worksheets.Add.Name = st.Cells(i, 2).Value
 Next
End Sub

たとえ、エラーが出るとしても検証できるようなコードは最低限提示するように
しませんか?
変数の宣言やインデントの整理くらいは、vba若葉マークでもできますよね?

また、2列目の存在チェックをしているのに、A列の値でシート名を設定しよう
としているところもケアレスミスです。

5338 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free