文字又は数字の判断をしたいのですが?

テキストボックスに一つでも文字が入っているかどうかの判断とかはできないですかね?

テキストボックスに数字以外の物が入っているかどうかの判断とかはできないですかね?

A 回答 (3件)

文字の入力チェックの幾つかの例をあげます



(1)TRIM を使用した場合(前後のスペースはカットします)
if trim(txt.text) = "" then
msgbox"入力無し(但しスペースを除く)"
end if

(2)文字列関数を使用した場合
if len(txt.text) = 0 then
msgbox"入力無し"
end if

(3)数値かどうかの判断
if IsNumeric(txt.text) = true then
msgbox"数値"
else
msgbox"文字"
end if

また TRIM LEN IsNumeric 関数はVBのヘルプで調べてください。
    • good
    • 0

付加情報として、、、



スペースを取るTrim()というものを使うと、両端にスペースがある場合も
引っかかります。

文字の有無だけならLen()/LenB()を使って長さが0だったらとかも。
一文字一文字判断したいなら、端っこから一文字一文字Asc()で
アスキーコードを調べるって方法も、、、
    • good
    • 0

お疲れ様です。



テキストボックスに1つでも文字が入っているかの判断は

If Text1.Text <> "" Then
  '// 1文字でも文字が入っている
Else
  '// 1文字も文字が入っていない
End If

で良いと思います。

数字の判断は

If IsNumeric(Text1.Text) Then
  '// 数値が入っている
Else
  '// 数値以外が入っている
End If

で良いと思います。

間違っていたらごめんなさい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qリッチテキストボックスとテキストボックスの違い

VB6のリッチテキストボックスとテキストボックス
の違いは何なんでしょうか?

Aベストアンサー

RichTextだと扱えるファイルサイズが大きくなり
プロパティの指定が可能になります。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsrichtextboxclasstopic.asp

Qテキストボックスの文字を変換(特定の文字へ)

お世話になります。VBまったくの初心者です。
テキストボックスの文字をStrConvでカタカナやひらがなにする方法がありますが、
これを特定の文字に、例えば"あいう"ならば"あ"="あひる"、"い"="いのしし"、
"う"="うさぎ"と対応させて"あひるいのししうさぎ"などの文字列に変換することは
可能でしょうか?

"あ"は"あひる"のように一文字ずつならできたのですが、"あいう"のようにつなげると
上手くいきません。
何か方法があるようでしたら、あるいは不可能でしたらその旨教えて下さい。

Aベストアンサー

>"あ"は"あひる"のように一文字ずつならできたのですが
の意味が良く捉えられません。
>、"あいう"のようにつなげると上手くいきません。
この意味も判りません。
----
原文は、「ひらがな」の連なりとしていいのですね。
そしてコマンドボタン等クリックされた後処理を始めて言いのですか。1文字入れるごとに即座に変換するのですか。
原文の1文字に複数文字が対応し、1意的に対応するのですね。「あ」はある時は「あひる」ある時は「あなぐま」
にするとかないでしょうね。
1意的対応であれば、対応テーブル(表)を持ち、テーブルを引けば良いだけで、問題にするほどの事もない。
エクセルで言えば、VLOOKUP関数を使うイメージです。恥ずかしく初等的にやると
Sub test01()
Dim a(10), b(10)
a(1) = "あ": b(1) = "あひる"
a(2) = "い": b(2) = "いのしし"
a(3) = "う": b(3) = "うさぎ"
text1 = "あいう"
x = ""
For i = 1 To Len(text1)
For j = 1 To 3
If Mid(text1, i, 1) = a(j) Then
x = x & b(j)
End If
Next j
Next i
MsgBox x
End Sub
Text1はText1.textを当てる。
上記をコマンドボタンのイベントプロセヂュアーに変える。
配列a,bの要素は増やす。

>"あ"は"あひる"のように一文字ずつならできたのですが
の意味が良く捉えられません。
>、"あいう"のようにつなげると上手くいきません。
この意味も判りません。
----
原文は、「ひらがな」の連なりとしていいのですね。
そしてコマンドボタン等クリックされた後処理を始めて言いのですか。1文字入れるごとに即座に変換するのですか。
原文の1文字に複数文字が対応し、1意的に対応するのですね。「あ」はある時は「あひる」ある時は「あなぐま」
にするとかないでしょうね。
1意的対応であれ...続きを読む

Qテキストボックスに入る文字を1字に制限したいのですが、うまくできません。

事前に文字があってもなくても、最終入力文字が1つだけ残るようにしたいのです。

先日、同じ質問をしましたが、いただいた回答は、どれも役に立ちませんでした。ご自分で実験されてから回答してくださるようお願いします。

ダメだった方法
* sub text1_keyascii の中でボックスをクリアする。
* sub text1_keyascii の中でtextプロパティを再指定する。
* maxlength プロパティを1に設定しておく。

困っている状態
キー入力した文字が、次々とボックスに入ってしまい、BSキーなどを使わないと消せない。

Aベストアンサー

process9です。
maxlength プロパティを1にして
Private Sub Text1_KeyPress(KeyAscii As Integer)
Text1.Text = ""
End Sub
ではだめですか?


>先日、同じ質問をしましたが、いただいた回答は、どれも役に立ちませんでした。ご自分で実験されてから回答してくださるようお願いします。
余計なお世話かもしれませんが、実験してダメかどうか
はあなたのやることだと思いますが・・・
親切心で回答者は提案しているだけですし、
質問文面を誤解して回答する場合もありますから。

私のも実験してはいるけど、あなたのやりたいことが
本当に私に正しく伝わっているかは不明ですから。
んで
>どれも役に立ちませんでした
こう書かれるといい気持ちしないですよ。
あなたが逆の立場だったらどう思いますか?

ダメだったらダメだったで、補足に詳細を書くっていうのが
正しい質問のやり方だと思います。
反感買いますよ?って買ってますね・・・↓

Qリッチテキストボックスでの書式付と書式無しの判断をする方法について

リッチテキストボックスについて教えてください。

日報のようなものを作成しようと思い、フォームにRichTextboxを配置して
「 (当日の日付) + .txt 」あるいは「 (当日の日付) + .rtf 」の形式で
一日分を1ファイルとして保存するようにしました。

セーブは rich.SaveFile MyPath & filename, rtfRTF
読み込みは rich.LoadFile MyPath & filename, rtfRTF  で
やるように設定しました。
(全然分からなかったのですが、VBの本で調べました。)

で、この読み書きのところなのですが、書式付テキストでない場合は
普通に「~.txt」で保存して、書式付の場合だけ「~.rtf」で書き込み
をする、また両者を見分けて読み込み表示をさせる方法が分かりません。
教えてください。

それと、書式付テキストの場合は普通のテキストよりもサイズが大きく
なってしまいますが、日報では一日1ファイルにしているので、一ヶ月も
すれば合計サイズが30KB~60KBにもなってしまいます。
これをなるべく小さなサイズで累積するような方法はないでしょうか?

どなたか是非お教えください。
よろしくお願いします。

リッチテキストボックスについて教えてください。

日報のようなものを作成しようと思い、フォームにRichTextboxを配置して
「 (当日の日付) + .txt 」あるいは「 (当日の日付) + .rtf 」の形式で
一日分を1ファイルとして保存するようにしました。

セーブは rich.SaveFile MyPath & filename, rtfRTF
読み込みは rich.LoadFile MyPath & filename, rtfRTF  で
やるように設定しました。
(全然分からなかったのですが、VBの本で調べました。)

で、この読み書きのところなのですが、書式付テキス...続きを読む

Aベストアンサー

別のリッチテキストに.Textをコピーして.TextRTFを比較してみるとか

Private Sub Command1_Click()

RichTextBox2.Text = RichTextBox1.Text
If (RichTextBox2.TextRTF = RichTextBox1.TextRTF) Then
MsgBox "テキストで保存するべし"
Else
MsgBox "RTFで保存するべし"
End If
End Sub

Qテキストボックスへの文字の入力について

テキストボックスに入力できる文字を半角文字は最大30字、全角文字は最大15字に設定したいのですがどのようにすればできるのでしょうか?知っている方教えてください。

Aベストアンサー

2つ方法を提案しておきますね。

こちらがVB的
1.KeyPressイベントで、すでにテキストに入力されている文字のバイト数と、イベントの引数で渡されてくる入力された文字のバイト数を足し、30より大きくなるのであれ
ば、0を文字として返すことで入力できなくする。

バイト数を求めるにはStrConvを使ってください。


API使用
2.SendMessageで、テキストボックスにEM_LIMITTEXTメッセージを送る。

です。


人気Q&Aランキング

おすすめ情報