五月病おそるべし!! どうもoReです(白目)
今回は、TextBox数字入力の検証をしていきます。
TextBoxの数字をセルに入れる
#07で、このように書きました。
テキストボックスは文字通り、
テキスト(文字列)を入力するボックスです。つまり、テキストボックスに数値を入力すると、
文字列として扱われてしまいます。文字列だと、計算ができなくなってしまうので、
×1をすることで、数値データに変換しています。
だがしかし、
×1しなくてもいいんです。
単純に.Valueもしくは、.Textを付けてあげるのです。
ためしに、やってみましょう。
↓こんな感じに作成
動作として、コマンドボタン1をクリックしたら、
各セルに各テキストボックスの値を入れるよ。
Private Sub CommandButton1_Click()
Range("A1") = TextBox1
Range("A2") = TextBox2 * 1
Range("A3") = TextBox3.Value
Range("A4") = TextBox4.Text
End Sub
※エラー処理してません。
必ずテキストボックスに数字を入力してポチってね。
動作確認すると
セルA1のみ文字列になっています。
.Valueか.Textを付けると数字のみの場合は、
数値と認識してくれてるみたいです。
セルの値とTextBoxの値を計算する
では、コマンドボタン1で入力したセルの値と、
テキストボックスの値を計算してみましょう。
↓コマンドボタン2を追加
動作として、コマンドボタン2をクリックしたら、
A列の各値と各テキストボックスの値を足し算してB列に入れるよ。
Private Sub CommandButton2_Click()
Range("B1") = Range("A1") + TextBox1
Range("B2") = Range("A2") + TextBox2 * 1
Range("B3") = Range("A3") + TextBox3.Value
Range("B4") = Range("A4") + TextBox4.Text
End Sub
※エラー処理してません。
必ずテキストボックスに数字を入力してポチってね。
動作確認すると
セルB1の値が『11』となります。
と言うことは、『+』は『&』と同じ処理をしているっぽいよね。
しかも、数値になっています。
じゃー、メッセージボックスで確認してみる。
Private Sub CommandButton2_Click()
Range("B1") = Range("A1") + TextBox1
Range("B2") = Range("A2") + TextBox2 * 1
Range("B3") = Range("A3") + TextBox3.Value
Range("B4") = Range("A4") + TextBox4.Text
MsgBox "1" + "1"
End Sub
うん、OK!!
そしたら、メッセージボックスの足し算のどちらか片方を数値にしてみる。
Private Sub CommandButton2_Click()
Range("B1") = Range("A1") + TextBox1
Range("B2") = Range("A2") + TextBox2 * 1
Range("B3") = Range("A3") + TextBox3.Value
Range("B4") = Range("A4") + TextBox4.Text
MsgBox "1" + 1
End Sub
ちゃんと計算しますな!!
と言うことは、
ってことですな。
ちなみに、数字(文字列)と数字(文字列)を『-』『*』『/』しても計算しますね。
『+』の時だけ、何か見えない力が働いている様ですw
TextBox1*1
ではでは、テキストボックス1に.Valueか.Textを付けて
動作確認してみましょう。
Private Sub CommandButton2_Click()
Range("B1") = Range("A1") + TextBox1.Value
Range("B2") = Range("A2") + TextBox2 * 1
Range("B3") = Range("A3") + TextBox3.Value
Range("B4") = Range("A4") + TextBox4.Text
End Sub
(# ゚Д゚)『VBA、てえ~めぇぇぇ⤴』
失礼!! 餅つけoRe!!
初めのほうで×1しなくても.Valueか.Textを付ければいいと言いましたが、
それはセルへ入力する場合みたいですね。
プログラム上でテキストボックスの数字を使用する場合は、
あくまでもテキスト(文字列)あつかいみたいです。
では、テキストボックス1に×1、
テキストボックス2の×1を消して動作確認してみてください。
Private Sub CommandButton2_Click()
Range("B1") = Range("A1") + TextBox1 * 1
Range("B2") = Range("A2") + TextBox2 '← * 1を消す
Range("B3") = Range("A3") + TextBox3.Value
Range("B4") = Range("A4") + TextBox4.Text
End Sub
ちゃんと計算されてますか?
もちろん、×1ではなく+0でも数値に変換できます。
ためしてみてね。
まとめ
次回 もうちょい、TextBoxを掘るよ
コメント
最新投稿日であった4月から毎日ちょこちょこ見てましたが、そろそろ失踪したんではないかと思いました。お元気でよかったです。
4月にVBAが必要になって、実際に作るシステムが在庫管理に似ていたので何か学習用になるサイトがないかなあと探していたらここにたどり着きました。プログラムの知識は少しだけあったので、とても分かりやすくネット用語などの冗談で、面白い記事だと思いました。
これからもご教授よろしくお願いします!!
コロまぐ様
はじめまして。
コメントありがとうございます。
>失踪
全人類のため、某ウイルスをVBAでどうにか出来ないか?と疾走しておりました。(大嘘)
まだまだ予断を許さない状況、くれぐれもご自愛ください。
いつもありがとうございます。最近このサイトを知りまだ途中です。
とても分かりやすく、面白く説明されていて見ていて楽しいですね。
#31の追加、よくわからなかったところについて分かりやすく説明していただいています。
VBAは意外と敷居が高く難しく考えてしまいがちな私ですが、いとも易しく説明されるoRe様
の姿勢に尊敬と感謝の念を抱いている次第です。
是非とも某ウイルスを撃退していただきたく存じます。次の更新をお待ちしています。
にしぼうず様
コメントありがとうございます。
>よくわからなかったところについて分かりやすく説明していただいています。
*1について、他の方々にも参考になっていれば良いのですが…
良い質問をありがとうございました。
某ウイルスの件は、プロのグラマーな方々にお任せしましょうw
私なんぞが出しゃばっても、ねぇ…