| 
    
     |  | ▼Abebobo さん: おじさん46さん こんにちは
 
 一例です。同じロジックですが、扱い易くなっていると思います。
 '/////////////UserFormモジュー//////////////
 Option Explicit
 'Collectionを使用する
 Private mCol As Collection
 
 Private Sub UserForm_Initialize()
 Set mCol = New Collection
 With Me
 mCol.Add .TextBox1
 mCol.Add .TextBox2
 mCol.Add .TextBox3
 mCol.Add .TextBox4
 mCol.Add .TextBox5
 mCol.Add .TextBox6
 mCol.Add .TextBox7
 End With
 End Sub
 
 Private Sub CommandButton1_Click()
 Dim x As Long
 For x = 1 To 10000
 With Worksheets("Sheet3")
 If .Cells(5 + x, 2).Value = "" Then
 .Cells(5 + x, 2).Value = mCol.Item(2).Text
 .Cells(5 + x, 3).Value = Now
 .Cells(5 + x, 4).Value = mCol.Item(4).Text
 .Cells(5 + x, 5).Value = mCol.Item(5).Text
 .Cells(5 + x, 6).Value = mCol.Item(6).Text
 .Cells(5 + x, 7).Value = mCol.Item(7).Text
 Exit For
 End If
 End With
 Next
 
 With Worksheets("Sheet4")
 .Cells(16, 2).Value = mCol.Item(1).Text
 .Cells(2, 3).Value = Now
 .Cells(5, 2).Value = mCol.Item(3).Text
 .Cells(5, 4).Value = mCol.Item(4).Text
 .Cells(5, 7).Value = mCol.Item(5).Text
 .Cells(5, 5).Value = mCol.Item(6).Text
 End With
 Worksheets("Sheet4").PrintOut
 'TextBoxのクリアは外に追い出す(可読性、メンテナンス性)
 Call ClearText
 UserForm1.Hide
 
 End Sub
 
 'TextBoxをクリアするだけのプロシージャ
 Private Sub ClearText()
 Dim i As Long
 For i = 1 To 7
 mCol.Item(i).Text = ""
 Next i
 End Sub
 
 
 Private Sub UserForm_Terminate()
 Set mCol = Nothing
 End Sub
 
 ちなみにこれ以上TextBoxが多くなると使い方にもよりますが、多分
 私もClassを使うと思います。
 
 興味があれば、「Collection Class」をキーワードに過去ログを検索してみて下さい。
 サンプル、情報があります。
 
 >先日、私よりずっと前に わいわい をHNにされている方がいましたので、
 >HN代えました。 よく確認せずにわいわいを名乗ってました。
 >わいわいさんすみませんでした。
 やはりそうでしたか!なんか違うかなとは感じてましたので。納得 ^ ^;
 
 |  |