質問するログイン新規登録

回答編集履歴

1

ttyp03さんの指摘を追記

2019/10/07 09:24

投稿

Youbun
Youbun

スコア125

answer CHANGED
@@ -9,4 +9,29 @@
9
9
  string型の未記入判定は「textbox_value=””」になります。
10
10
  詳しくは以下のサイトを見てみてください。
11
11
 
12
- [VBAのEmptyやNothingやNull等の違い](https://vbabeginner.net/vba%E3%81%AEempty%E3%82%84nothing%E3%82%84null%E3%81%AA%E3%81%A9%E3%81%AE%E9%81%95%E3%81%84%E3%82%92%E6%95%B4%E7%90%86/)
12
+ [VBAのEmptyやNothingやNull等の違い](https://vbabeginner.net/vba%E3%81%AEempty%E3%82%84nothing%E3%82%84null%E3%81%AA%E3%81%A9%E3%81%AE%E9%81%95%E3%81%84%E3%82%92%E6%95%B4%E7%90%86/)
13
+
14
+
15
+ **「空白文字のみが記入されてる場合も未記入扱いにしたい!」**という場合は
16
+ 以下の追記も確認してみてください!
17
+
18
+ **※ttyp03さんの指摘を追記**
19
+ 「If textbox_value = "" Then」の判定だと本当に未記入の場合のみtrueになる
20
+ →テキストボックスに空白文字のみ記入された場合は見た目は未記入なのにfalseになる!
21
+ 「Trim(string型の変数)」を使うと変数前後の空白が取れる
22
+ →空白文字のみ記入された場合もtrueになる!
23
+ ということです。※以下サイトに詳細書いてます
24
+ [Trim関数について](https://www.sejuku.net/blog/34111#i)
25
+ Trimだとタブ等の文字が消えないので上記サイトの
26
+ 「3 改行、タブ、全角スペースを削除する方法」項目のように
27
+ Replace関数で消していくやり方も確認してみてください。
28
+ **▼ 空白文字のみの場合は未記入とする判定方法に変更**
29
+ ```vb
30
+ ' 記入内容を変更しないように、必ず別の変数に取得する
31
+ Dim hantei As String
32
+ hantei = Trim(textbox_value) ' 空白削除
33
+ hantei = Replace(hantei, vbTab, "") ' タブ削除
34
+ hantei = Replace(hantei, vbCrLf, "") ' 改行削除
35
+ hantei = Replace(hantei, vbLf, "") ' 改行削除
36
+ If hantei = "" Then
37
+ ```