Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
テキストボックスに入れた行や桁の数を、変数に代入させるには
投稿日時: 23/11/19 20:53:10
投稿者: kitazawake

テキストボックスに行や桁の数を入れると、その数が変数に代入されて、その変数をプログラムで使えるようにするにはどうしたらいいでしょうか。

回答
投稿日時: 23/11/19 21:04:58
投稿者: WinArrow

>テキストボックスに行や桁の数を入れる
テキストボックスには、幾つかのの種類があります。
どこに設置したテキストボックスでしょうか?
  
↓の例で説明してください。
1.シートに設置したテキストボックスですか?
1.1フォームコントロールのテキストボックス
1,2ActiveXのテキストボックス
1.3図形の中のテキストボックス
2.ユーザーフォームに設置したテキストボックスですか?
  
次に
「行」とは何か?
「桁」とは何か?
若しかしたら「桁」でじゃなく「列」ではないですか?
それを手入力しているんですか?
 

回答
投稿日時: 23/11/20 10:25:18
投稿者: WinArrow

↑の質問は、
>テキストボックスに行や桁の数を入れると、その数が変数に代入されて
を、自動化したいということですよね?
  
テキストボックスに「値」を入れる
という行為をプログラムでキャッチすることできるかどうかにかかってきます。
テキストボックスの種類によって、キャッチする方法が異なるからです。
または、手入力しないでも、値を取得できるかもしれないからです。

投稿日時: 23/11/20 11:55:02
投稿者: kitazawake

早速のお返事ありがとうございます。毎日の各種数値を入力してあるシート上に、フォームを作ってあり、そのフォーム上にテキストボックスが2つ作ってあります。シートの列番号を2つ入力すると最初の列番号から2つ目の列番号までif,thenで繰り返し条件にあった個数を調べたいのです。入力した数字が、テキストとして扱われてしまうとか、数とするにはどうするかとか難しいことが多いです。よろしくお願いします。

回答
投稿日時: 23/11/20 15:55:24
投稿者: simple

ユーザーフォーム上のテキストボックスということでいいんですね?
そのコントロールのValueプロパティは文字列を返します。
これを数値として使う場合、
(1)
Dim m As Long
m =TextBox1.Value
などとしてLong型変数に代入すれば、m を数値として扱えます。
(2)
変数に代入するまでもなく、直接使うなら、
Clng(TextBox1.Value) と型変換すれば数値として使えます。
 
なお、不明な点が残れば、現時点でうまくいっていないコードを提示されると、
より具体的な話ができると思います。

回答
投稿日時: 23/11/20 16:20:02
投稿者: WinArrow

ここで
>フォーム
は、ユーザーフォームということですね。
 
テキストボックスには、列を数字で入力しているという前提で、数値化にする方法
 
Dim 変数1 As Long
 
Private Sub TextBox1_AfterUpdate()イベントプロシジャを推奨
 
(1)の方法
    変数1 = Me.TextBox1.Text * 1
(2)の方法
    変数1 = CLng(Me.TextBox1.Text)
(3)の方法
    変数1 = Val(Me.TextBox1.Text)
 
テキストボックスの「値」が数字以外の場合、
(1)(2)の方法は、エラー(数値化できない)になります。
(3)の方法は、変数1には、「0」が入ります。
 
 
テキストボックスに、列を英字で入力する方法・・・・みたまま入力できる
Private Sub TextBox1_AfterUpdate()
    With Me.TextBox1
        変数1 = Columns(.Text).Column
    End With
    MsgBox "変数1の値は、 " & 変数1 & "です。"
End Sub
 
手入力させない方法もありますが、
簡単な方法を紹介しました。
 

投稿日時: 23/11/20 17:12:00
投稿者: kitazawake

有難うございます。さっそくそれぞれの方法を試します。

投稿日時: 23/11/20 19:14:51
投稿者: kitazawake

有難うございました。Dim m as long と clngの両方ともうまく動きました。参考書を何冊も調べてもできなかったのです。たいへん助かりました。感謝です。