| 
    
     |  | ▼にしもり さん: 
 >お陰さまでここまで書けました。
 >だた、止まってしまいます。
 
 >>  ws1.Cells(m, n).Value = Me.TextBox1.Value '<=with ブロック変数なしと出てここで止まってしまいます
 
 このエラーは、ws1 になにもセットされていないのが理由でしょうね。
 そのほかに、先に申し上げた留意点、コンボボックスが選ばれていない場合
 ComboBox1.ListIndexが -1 になっていて、これはこれで、ws1 に値が入っていても
 別のエラーになりますね。
 
 ユーザーフォームモジュールでPublic変数の宣言をしているところ他、
 ちょっと添削してみました。
 
 Option Explicit
 
 Dim ws1 As Worksheet
 
 Private Sub UserForm_Initialize()
 Set ws1 = Sheets("Sheet1")  'ws1ってSheet1なんですよね?
 ComboBox1.RowSource = ws1.Range("b5:b31").Address(external:=True)
 End Sub
 
 Private Sub CommandButton1_Click()
 Dim m As Long
 Dim n As Long
 
 With ComboBox1
 
 If .ListIndex < 0 Then
 MsgBox "まだ値が選択されていません"
 Exit Sub
 End If
 
 m = .ListIndex + 5
 n = Cells(.ListIndex + 5, ws1.Columns.Count).End(xlToLeft).Column
 
 If n < 7 Then
 n = 7
 Else
 n = n + 1
 End If
 
 ws1.Cells(m, n).Value = TextBox1.Value
 
 End With
 
 End Sub
 
 Private Sub CommandButton2_Click()
 ComboBox1.Value = "" 'False は具合悪いでしょ?
 TextBox1.Value = ""
 End Sub
 
 Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 Set ws1 = Nothing
 End Sub
 
 
 |  |