テキストボックスに値がある時とない時で分岐させたい
解決済
回答 2
投稿
- 評価 0
- クリップ 0
- VIEW 4,538
シート1には「textbox 514」のテキストボックスがあります。
ここに何か値が入っている時・・・
シート2のA6セルにそれを表示させたいです。
もし、何も入っていない場合
シート2のA6セルに「未記入」と表示させたいです。
それで下記を作りました・・・
Dim textbox_value As String
textbox_value = Sheets("sheet1").TextBoxes("textbox 514").Characters.Text
If IsEmpty(textbox_value) = 0 Then
Worksheets("sheet2").Range("A6").Value = "未記入" '未記入の場合
Else
Worksheets("sheet2").Range("A6").Value = textbox_value '記入されている場合"
End If
実際動かしてみると、値がある時、ない時どちらの時も、下記に行ってしまいます。
なぜでしょうか?
Worksheets("sheet2").Range("A6").Value = "未記入" '未記入の場合
「textbox 514」のテキストボックスに値を入れた時、
「textbox_value」という変数にはしっかりその値が代入されているのは確認できました。
逆に何も入れていない時にも、変数には何も入っていない事も確認できました。
もし分かりましたらお力お貸し頂けますと幸いです。
-
クリップを取り消します
-
質問の評価を上げたことを取り消します
-
質問の評価を下げたことを取り消します
checkベストアンサー
0
If IsEmpty(textbox_value) = 0 Then
この部分を
If textbox_value = "" Then
に変更してください。
string型の未記入判定は「textbox_value=””」になります。
詳しくは以下のサイトを見てみてください。
「空白文字のみが記入されてる場合も未記入扱いにしたい!」という場合は
以下の追記も確認してみてください!
※ttyp03さんの指摘を追記
「If textbox_value = "" Then」の判定だと本当に未記入の場合のみtrueになる
→テキストボックスに空白文字のみ記入された場合は見た目は未記入なのにfalseになる!
「Trim(string型の変数)」を使うと変数前後の空白が取れる
→空白文字のみ記入された場合もtrueになる!
ということです。※以下サイトに詳細書いてます
Trim関数について
Trimだとタブ等の文字が消えないので上記サイトの
「3 改行、タブ、全角スペースを削除する方法」項目のように
Replace関数で消していくやり方も確認してみてください。
▼ 空白文字のみの場合は未記入とする判定方法に変更
' 記入内容を変更しないように、必ず別の変数に取得する
Dim hantei As String
hantei = Trim(textbox_value) ' 空白削除
hantei = Replace(hantei, vbTab, "") ' タブ削除
hantei = Replace(hantei, vbCrLf, "") ' 改行削除
hantei = Replace(hantei, vbLf, "") ' 改行削除
If hantei = "" Then
0
IsNumeric(x)がTrueならばxは数値(にできる)
IsNumeric(x)がFalseならばxは数値でない
IsEmpty(x)がTrueならばxは空(0 or "")
IsEmpty(x)がFalse(=0)ならばxは空ではない
If IsEmpty(textbox_value) = 0 Then
これでは IsEmpty(textbox_value) がFalse(空ではない)ならば
Worksheets("sheet2").Range("A6").Value = "未記入" '未記入の場合
となります。やろうとしていることと関数の機能が逆転しています。
空のときに入りたいのであれば本来はこっちになります。
If IsEmpty(textbox_value) Then
Worksheets("sheet2").Range("A6").Value = "未記入" '未記入の場合
投稿
score 3314
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 87.99%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
ttyp03
2019/10/07 17:19
仕様次第ですが。
空白も未記入とみなすならTrim必要、記入ありとするならこのままで。