• ベストアンサー

コンボボックスで名前を指定後、新規シート名に使用する方法

お世話になります。 UserFormでコンボボックスを作成しました。 そこでリストを選択した後、 新規シートを作成するマクロまではできたのですが、 その新規シートにリストで選択した名前を入力させるには、 どのようなマクロを組めばよいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんな感じ? Private Sub CommandButton1_Click() Dim ws As Worksheet If Me.ComboBox1.Value = "" Then Exit Sub For Each ws In Worksheets  If ws.Name = Me.ComboBox1.Value Then    MsgBox Me.ComboBox1.Value & "は既に存在します", _             vbExclamation + vbOKOnly, "注意"    Exit Sub  End If Next ws On Error Resume Next  Set ws = Worksheets.Add(after:=Worksheets(Worksheets.Count))  ws.Name = Me.ComboBox1.Value End Sub

haze23
質問者

お礼

個人的な都合で回答が大変遅くなり、申し訳ありませんでした。 上記の方法を参考に、自分の作りたかったものが出来ました。 本当にありがとうございます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

標準モジュールに Sub test01() Worksheets("sheet2").ComboBox1.AddItem "aaa" Worksheets("sheet2").ComboBox1.AddItem "bbb" Worksheets("sheet2").ComboBox1.AddItem "ccc" Worksheets("sheet2").ComboBox1.AddItem "ddd" End Sub をつくり実行してください。1度だけ。2度実行すると同じものが 累積されるので。 Sheet2にComboBoxが貼り付けてあるとします。 実際はWith End Withを使ってください。 -------- 次にSheet2のシートモジュールに Private Sub ComboBox1_Change() MsgBox ComboBox1.Text Worksheets.Add.Name = ComboBox1.Text Worksheets("sheet2").Select End Sub を作ってください。 そしてコンボボックスをクリックしてアイテムを選択してみてください。そのシート名のシートができます。 シート名が同じものを指定されるとエラーになるので、その手当てが 必要ですが、略してます。必要あらば、別途入れてください。

haze23
質問者

お礼

個人的な理由で回答が大変遅くなり、申し訳ありませんでした。 No.1の方の方法と合わせ、自分の作りたかったものが出来ました。 また、エラーの対処もなんとか出来ました。お心づかい、誠にありがとうございます。