| 
    
     |  | かみちゃん さん、ありがとうございます。 昨日、かみちゃんさんからお教えいただいたものを活用して、
 
 strRow = Me.TextBox1
 MsgBox Range(strRow).Rows.Count
 と、することで、テキストボックス1にA1:A100と範囲を打ち込んで、メッセージボックスに99と選択した行の数値が出るようにはなったのですが、その数値をモジュール内のsigma = Std * Sqr()という式の入れ込む方法で今は悩んでいる状況です。
 以下は、先ほどのかみちゃんさんからの返答に答えたものですが、
 Private Sub CommandButton1_Click()
 '〜省略〜
 Unload UserForm1 ' Meで指定されているフォームとUserForm1は異なるフォームですか? A:フォーム一緒のものです。
 With Me.TextBox1
 strRow = Me.TextBox1
 If .Value = "Range(strRow).Rows.Count" Then Exit Sub
 '〜省略〜
 ↑
 " "で囲っているので、「Range(strRow).Rows.Count」という文字列とTextBox1の値を比較しています。
 しかし、
 If .Value = Range(strRow).Rows.Count Then Exit Sub
 としたとしても、Me.TextBox1.Value は、セル範囲を示す文字列、
 Range(strRow).Rows.Count は、そのセル範囲の行数を返しますので、
 必ず一致することはないと思います。←keinさんから教わったものを使ってみたの                 ですが、使用しないほうがいいのでしょう                  か?
 
 モジュールは、
 Sub Calculate(DataRange As String, OutputRangeA As String, OutputRangeB As String)
 Dim Std As Single, sigma As Single
 Dim RanData As Range
 '〜省略〜
 Call Output(Std) ← 何の処理かわかりませんが・・・
 A:ユーザーフォームに値が出る場所が2つあり、これはOutputRangeAからTextBox2に標準偏差の値を出す処理です。
 
 sigma = Std * Sqr(Mynum) ←Mynumという変数は、宣言されていません。
 すいません。変数を宣言するのを忘れておりました。
 何分、VBA初心者なもので、ご足労おかけいたしますが、どうぞよろしくお願いします。
 
 |  |