• ベストアンサー

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

お世話になります。 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/17068)
回答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の方の方法と合わせ、自分の作りたかったものが出来ました。 また、エラーの対処もなんとか出来ました。お心づかい、誠にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • シート名をコンボボックスで入力

    こんにちは。 早速ですが質問です。 エクセル97を使用しています。 シート名を変更するときにコンボボックスなどを表示し、そこから選択して シート名を入力できるようにしたいのですが可能でしょうか? リストから選んで入力できるかたちなら、なんでも構いません。 リストはシート名を変えるシートとは別の他のシートにあります。 つたない説明ですがよろしくお願いします。

  • Excelのワークシート上でコンボボックス

    お世話になります。 Excelのワークシート上にコンボボックスを配置して、ここからマクロを選択して呼び出すことは出来ますか? コンボボックスは配置できるのですが、マクロ名を設定する方法がわかりません。 エクセルのヴァージョンはExcell2000です。 よろしくお願いいたします。

  • コンボボックスのリストに追加

    歌手のアルバムリストを作成しています。 コンボボックスに新規入力した歌手の名前をコンボボックスのリストに追加し、既にある歌手名はそのままコンボボックスから選択できるようにしたいんですがどの様にコードを書いていいかわかりません。 お解りになる方がいらっしゃいましたらよろしくお願い致します。

  • エクセルのコンボボックスについて

    シート「データ」に   A  B 1 い  東京 2 ろ  千葉 3 は  埼玉 上記内容が記載されています。 それを別のシートで参照できるようにリストを作って入力規則でコンボボックスを作りました。 しかし、コンボボックスには選択肢がひとつしか表示されません。 「い、ろ、は」だけが表示されています。 でも本当は「東京、千葉、埼玉」をコンボボックスで表示し、セルには「い、ろ、は」のどれかを表示するようにしたいのです。 これをマクロを使わないでできるでしょうか?

  • コンボボックスで選択した値をシートに転記する

    エクセルを使用して表を作成していますが、うまくいきません。 作りたいのは下記のものです。 sheet1にリストを作成  (リストはA-F列で300行程、また先頭A列は任意の不連続番号) sheet2に表を作成 sheet2のA1にコンボボックスを作成 コンボボックスにはsheet1のリストのA,B列を表示させたい またコンボボックスで選択した行のデータをsheet2にコピーさせる。 と、なるようにしたいのですが、どのようにしたら良いのでしょうか? コンボボックスのリンクから参照したVLOOKUPだとセルのデータを上書きされると、式がなくなってしまうので、VBAで作成したいです。

  • VBA のフォームでTxtボックスとコンボボックス

    エクセル2013で、やっとのことでマクロのフォーム(txt入力のみを5項目)を完成させることができました。 次に、そのうちの一つは曜日の入力なのでこれをコンボボックスにして、一覧を出してマウスで選択するように変更したいのですがどうもうまくいきません。マクロは初めてなので基本的な考え方ができていないのです。   そこで質問なのですが、参考書には  Private Sub UserForm_Initialize End Sub にマクロを記入するとなっていますが、これをもとの曜日入力ボックスと置き換えることはできないのでしょうか。それとも、終了ボタンのマクロと同じように、別のプロシージャにしないといけないのでしょうか。 それから、これはあまり重要ではないかもしれませんが、私がコンボボックスを作成するとマクロに Combbox_Changed のようなプロパティ(?)が表示されて、ヘルプを見てもよくわかりません。これはどういうことなのでしょうか。 よろしくお願いします。

  • エクセル マクロ コンボボックスリスト

    sheet1の場所でボタンクリックでフォーム表示。その中でコンボボックスリストを作成。 sheet3にデーターをA列に作りました。 1)フォームの中のコンボボックスをクリックしてリスト表示させた い。マクロの記述を教えてください。 2)コンボボックスリストに表示した文字をsheet2に記録するボタンを作ったがマクロの記述を教えてください。

  • エクセルVBAコンボボックスについて

    リスト欄のセルA3から下方向に大分類(A16まで14種類)があります。 コンボボックス1に大分類をリスト化して選べるようにしたいと思っています。 しかし、(1)のようにVBAを記入して、マクロを実行すると、コンボボックス1には、 大分類で14個あるリストの4つしか出てきません。 -(1)(抜粋)--------------------------------------------------------- Private Sub UserForm_Initialize() Dim MyVar1 As Variant MyVar1 = Sheets("リスト").Range("A3:A" & Range("A3").End(xlDown).Row) ------------------------------------------------------------------ (2)のように記述してマクロを実行すると、コンボボックス1には、14個全てが表示されます。 -(2)(抜粋)--------------------------------------------------------- Private Sub UserForm_Initialize() Dim MyVar1 As Variant MyVar1 = Sheets("リスト").Range("A3:A16") ------------------------------------------------------------------ 原因がわかる方、いらっしゃいませんか? 出来れば、リスト欄のA列は14個よりも増える可能性があるので、Range("A3:A" & Range("A3") .End(xlDown).Row)のような範囲の指定がしたいです。 なお、リストシートのA3を選択して、「Ctrl+↓」でA16が選択されました。

  • Excel2000で、目次となるシートのコンボボックスのリストから別のシートへジャンプしたいのですが・・・

    現在Excelをまとめているのですが、シートが50ほどになりとても検索しにくくなっています。 そこで、シートの巻頭にシートを追加し、コンボボックスを設けて、コンボボックスのリストから選択したシートへジャンプさせたいと考えました。 VBAを使うようなのですが、参考になる質問が見つからなかったので、是非ご存知の方教えて頂けないでしょうか? ※ちなみに小生、VBAに非常に疎い為コンボボックスへのリストの入力方法まで教えて頂けるとありがたいのですが・・・・ 困っています! 宜しくお願い致します。

  • エクセルマクロについて コンボボックスについて

    コンボボックスについて質問が2つあるのですが、 1.コンボボックスのリストに、シートに記載の値や文字を採用するにつき、 プロパティのRowSourceに、B1:B100 と記述しますが、 ABCと複数シートがありまして、どのシートからコンボボックスを起動しても、AシートのB1~B5を指定したい場合、プロパティのRowSourceはどのような記述をしたらよいのでしょうか? 2.UserFormで入力を制御したいのですが、その中に複数入力項目がありまして、その都度全部入力することはありません。 たとえば、元金、利息、月々返済額と3つある場合で、月々返済額だけ変更して、元金、利息は前の数値をそのままで入力したいとき、どのような工夫(記述)をしたらよいでしょうか? 言い方を変えますと、UserFormを起動したときは、前回入力したそれぞれの数値がUserFormに表示されているようにしたいのです。 ちなみにエクセル2003、OS=XPです。 どうかよろしくお願いします。