| 
    
     |  | かみちゃんさん、keinさん昨日はどうもありがとうございました。 あの後、いろいろとやってみて、
 strRow =Me.TextBox1
 MsgBox Range(strRow).Rows.Count
 とすることで、メッセージボックスに指定した行の数を抽出することに成功しました。
 しかし、モジュールの式に数値を送ることがどうしてもできません。よろしかったら、もう1度お教えください。
 で、現在ユーザーフォームは
 Private Sub CommandButton1_Click()
 Dim DataRange As String, OutRangeA As String, OutRangeB As String, _
 i As Long, x As Long, Mynum As Long, strRow As String
 DataRange = UserForm1.TextBox1.Text
 OutRangeA = UserForm1.TextBox2.Text
 OutRangeB = UserForm1.TextBox3.Text
 Call Calculate(DataRange, OutRangeA, OutRangeB)
 Unload UserForm1
 With Me.TextBox1
 strRow = Me.TextBox1
 If .Value = "Range(strRow).Rows.Count" Then Exit Sub
 For i = Len(.Value) To 1 Step -1
 If Not IsNumeric(Mid(.Value, i, 1)) Then
 x = i + 1: Exit For
 End If
 Next i
 If x = 0 Then
 Mynum = CLng(.Value)
 Else
 Mynum = CLng(Mid(.Value, x))
 End If
 End With
 End Sub
 このようになっており、モジュールは
 Sub Calculate(DataRange As String, OutputRangeA As String, OutputRangeB As String)
 Dim Std As Single, sigma As Single
 Dim RanData As Range
 Set RanData = Range(DataRange)
 Std = Application.StDev(RanData)
 Range(OutputRangeA).Select
 Call Output(Std)
 sigma = Std * Sqr(Mynum)
 Range(OutputRangeB).Select
 Call Output(sigma)
 End Sub
 となっています。
 
 |  |