- ベストアンサー
エクセルの連続データをユーザー指定数を改行して表示
- エクセルの連続データをユーザー指定数を改行して表示するためのVBAとユーザーフォームの作成方法について教えてください。
- シート2の連続したデータをシート1のユーザーフォームのコンボボックスから選択し、指定数分を改行してシート1のセルに格納したいです。
- また、コンボボックスの値が選択状態から変更可能で、指定数分格納されるようにしたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
UserForm1にCombobox1、TextBox1、CommandButton1,2,3を配置する。 UserForm1モジュールに下記を作成する。 private sub UserForm_Initialize() me.combobox1.rowsource = "Sheet2!A2:A" & worksheets("Sheet2").range("A65536").end(xlup).row end sub private sub CommandButton1_Click() ’左矢印 me.combobox1.listindex = application.max(0, me.combobox1.listindex - 1) end sub private sub CommandButton2_Click() ’右矢印 me.combobox1.listindex = application.min(me.combobox1.listcount - 1, me.combobox1.listindex + 1) end sub private sub CommandButton3_Click() ’登録 dim c as long, r as long, p as long if me.combobox1 = "" or not isnumeric(me.textbox1) then exit sub range("A:E").clearcontents ’適宜調整の事 for p = 0 to val(me.textbox1) - 1 c = p mod 5 + 1 r = (p \ 5) * 2 + 1 worksheets("Sheet1").cells(r, c) = worksheets("Sheet2").range("A2").offset(me.combobox1.listindex + p, 0) next p end sub
その他の回答 (1)
- msMike
- ベストアンサー率20% (364/1804)
「コソボボックス」の“こそぼ”って何?
補足
keithin さん、ご回答ありがとうございます。思った通りのことが出来ました。 甘えついでに申し訳ございません。 Sheet1のA1とB1が結合している場合【A1】~E1とF1で【E1】~A7とB7で【A7】・・・のように格納させるセルが結合の場合はどのような記述となるのでしょうか? また記述では、コンボボックス×数値(リストボックス)を【登録】すると反映されるようになっておりますが、現在の機能を残しつつ、選択されたコンボボックスの値のみをカーソルのあるセルに【登録】する処理はどのようになりますでしょうか? お手数ですがよろしくお願い致します。