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

お世話になっております。
たまたま別の質問で発見し、そのまま使用出来そうなコードを見つけたのですが、セルが結合されている場合にどのような記述をすれば良いのか教えてください!

時間が無く急いでおりますので、皆様よろしくお願い致します。

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

また、コンボボックスの選択した値をそのままSheet1の選択されたセルに登録する(数を入力せずに)にはどのような記述になるのでしょうか?

よろしくお願い致しますm(_ _)m

「エクセル ユーザーフォーム 連続したデー」の質問画像

A 回答 (1件)

こんにちは。



>コンボボックスの選択した値をそのままSheet1の選択されたセルに登録する
UserForm起動時に、
UserForm1.Show 0

とするか、
UserForm プロパティの ShowModal を、False にしてください。

>セルが結合されている場合にどのような記述をすれば良いのか教えてください!
特に、大きな違いはありません。画像のように、3結合セルを1行としました。


'// 'ユーザーフォームモジュール
Private Sub CommandButton3_Click()
 '登録
 Dim c As Long, r As Long, p As Long
 Dim j As Long
 Worksheets("Sheet1").Select
 Range("A1:F100").ClearContents 'ここは適当な範囲で設定
 If Me.ComboBox1 = "" And Not IsNumeric(Me.TextBox1) Then
  Exit Sub
 ElseIf Me.ComboBox1.Value <> "" _
  And TypeName(Selection) = "Range" And _
  Me.TextBox1.Value = "" Then
  ActiveCell.Value = Me.ComboBox1.Value
 Else
  For p = 0 To Val(Me.TextBox1) - 1
   c = (p Mod 3) * 2 + 1
   r = (p \ 3) * 2 + 1
   Worksheets("Sheet1").Cells(r, c).Value = Me.ComboBox1.List(j)
   j = j + 1
  Next p
 End If
End Sub


Private Sub UserForm_Initialize()
Dim i As Long
'ComboBox の取り込み方を変えました。
  With Worksheets("Sheet2") ''AddItem に変更 (A2から下に)
  For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
  Me.ComboBox1.AddItem .Cells(i, 1).Value
  Next i
 End With
End Sub

Private Sub CommandButton4_Click()
'終了
 Unload Me
End Sub
'///
「エクセル ユーザーフォーム 連続したデー」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございました!助かりました!!

お礼日時:2015/08/03 10:08

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