|
nobuyuki さん
かみちゃん さん
こんばんは。
>なお、大変ずうずうしく追加質問したいのですが、お答えいただけませんでしょうか?
>
>以前にワークシート上の例えば A1セルにIsEmpty関数を
>使って実現できたので、全く同様にUserForm1でも可能と考え試しました。
>そもそもUserForm1ではIsEmpty関数は使用不可なのでしょうか?
Emptyとは、Variant型の変数でまだどの型にも属していない状態です。
例えば、以下のコードを実行してみて下さい。
'================================================
Sub test()
Dim string_data As String
Dim long_data As Long
Dim variant_data As Variant
MsgBox "string_data: " & string_data & "---" & IsEmpty(string_data)
MsgBox "long_data: " & long_data & "---" & IsEmpty(long_data)
MsgBox "variant_data: " & variant_data & "---" & IsEmpty(variant_data)
'IsemptyがTrueを返すのは↑のみです。
string_data = ""
long_data = 0
variant_data = ""
MsgBox "string_data: " & string_data & "---" & IsEmpty(string_data)
MsgBox "long_data: " & long_data & "---" & IsEmpty(long_data)
MsgBox "variant_data: " & variant_data & "---" & IsEmpty(variant_data)
string_data = "aa"
long_data = 12
variant_data = "aa"
MsgBox "string_data: " & string_data & "---" & IsEmpty(string_data)
MsgBox "long_data: " & long_data & "---" & IsEmpty(long_data)
MsgBox "variant_data: " & variant_data & "---" & IsEmpty(variant_data)
end sub
これを踏まえ、
UserformのTextboxのTextプロパティを考えると
これそもそもString型ですのでIsEmptyでTrueは返りません。
又、仮にTextプロパティがVariant型だとしても
Textbox内での内部コードで
Text=""
というコードが実行されていれば
もはやEmptyではありません
(理由は、上記のコードの実行でお分かりだと思います)。
よって、この場合は、かみちゃん さん
記述されているように
If TextBox1.Text <> "" Then
という判断が間違いのない方法だと思います。
|
|