|
かみちゃんさん、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
となっています。
|
|