• ベストアンサー

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

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

  • nagiha
  • お礼率41% (331/790)

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

2つ方法を提案しておきますね。 こちらがVB的 1.KeyPressイベントで、すでにテキストに入力されている文字のバイト数と、イベントの引数で渡されてくる入力された文字のバイト数を足し、30より大きくなるのであれ ば、0を文字として返すことで入力できなくする。 バイト数を求めるにはStrConvを使ってください。 API使用 2.SendMessageで、テキストボックスにEM_LIMITTEXTメッセージを送る。 です。

nagiha
質問者

お礼

回答どうもありがとうございました。

その他の回答 (3)

  • haporun
  • ベストアンサー率40% (230/562)
回答No.4

VB5以上、WindowsNT以降では、半角と全角という概念が薄れています。 半角も内部で2バイトとして扱われるようになってしまったからです。 プロポーショナルフォントの登場で、半角文字が全角文字の半分の幅を持たなくなったのにも起因します。 これからは半角か全角かに依存するプログラムを作ることは、推奨されません。

nagiha
質問者

お礼

回答どうもありがとうございました。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 全角と半角で分けるとなると、MaxLengthプロパティも使えなさそうです。 従って、テキストボックスのExitイベントか、LostFocusイベントに以下のように書くのはどうでしょう。 If LenB(StrConv(Text1.Text, vbFromUnicode)) > 30 Then   Msgbox "文字数オーバー"   With Text1     .SetFocus     .SelStart = 0     .SelLength = Len(.Text)   End With   Exit Sub End If ちなみにこの場合は、半角文字を1文字=1、全角文字を1文字=2として文字数を数えて、全体で30を越えたらメッセージを出すようになっています。 では。

nagiha
質問者

お礼

回答どうもありがとうございました。

  • yanmaa
  • ベストアンサー率45% (207/457)
回答No.1

テキストボックスのプロパティ「MaxLength」に30と設定する。

nagiha
質問者

お礼

回答どうもありがとうございました。

nagiha
質問者

補足

すいません。MaxLengthを使うと半角文字でも30字入ってしまうのでそれ以外の方法でありませんか。

関連するQ&A

  • テキストBOXの入力制限について

    テキストBOXを下記のように設定したとします。 <input type="text"name="***" maxlength="30"> この場合は、全角・半角関係なく文字数を30文字入力することができますよね? 今回、私がやりたいことは、バイト数の制限をやりたいんです。 例えばバイト数を30バイトにした場合は、 全角では15文字しか入力できなくて 半角では30文字入力制限をする方法を探しています。 何かよい方法はないものでしょうか???

  • テキストボックスの入力制限

    VB2005環境です。 ・全角文字のみ入力を受け付けるテキストボックス ・半角文字のみ入力を受け付けるテキストボックス 以上のような入力制限を持つコントロールを用意したいと思っています。 MaskedTextBoxを用いればできるかと思いましたが、それらしき プロパティが見当たりませんでした。 やはりキーイベントを取得して…ということになるのでしょうか?

  • VB.net、テキストボックス入力制限、全角のみ

    VB.net初心者ですよろしくお願いします テキストボックス入力制限で全角文字のみを以下の方法で実現させました (1)テキストボックス選択時のImeMode初期値を全角ひらがなに設定 (2)ボタン押下時のイベントで入力された文字のサイズを確認し、半角が混ざっていたらエラー これで基本的には問題ないのですが、後学のために入力文字自体を全角のみに制限できないかを調べています いろいろ調査してみて半角のみは可能であることがわかり、実際にコーディングもしてみました しかし全角のみは調査しても情報が見つかりません 全角のみの入力制限が可能かどうか、理由も添えてアドバイスいただけると助かります よろしくお願いします。

  • テキストボックスのフォントが変わってしまいます。

    PPT2002を使用しています。 テキストボックスで「特殊文字」を半角で挿入すると、 なぜかフォントが全角の日本語フォントになってしまいます。 μ(マイクロ)などのギリシャ文字が入力できず困っています。 また、PPT2000で作成したファイルのテキストボックスの半角フォントもすべ て全角で表示されてしまいます。 何が悪いのかさっぱり分かりません。 よろしくお願いします。

  • テキストボックス入力が英語になる

    こんばんは なぜかこの教えてgooの入力するテキストボックスが半角英語になってしまいます。 いつものように変換ボタンを押してもだめなんです。 ノートパットなら全角で入力できるのでコピーして貼り付けています。 貼り付けた続きを書こうとしてもテキストボックスになると半角英語になってしまいます。 どうすれば直るでしょうか?

  • テキストボックスの入力制限

     VB6の画面入力でテキストボックスにフォーカスが移った際、半角カナや全角漢字、半角アルファベット大文字と云ったキーボードからの入力を制御したい(OSはWinXp/FEPはIME2002を使用)のですが、良い方法が有れば教えてください。

  • 文字入力について教えてください。

    1.文字の大文字・小文字固定入力   (1).半角で大文字のみ入力   (2).半角で小文字のみ入力   (3).全角で大文字のみ入力   (4).全角で小文字のみ入力   テキストボックスの入力で上記(1)~(4)の入力方法をしたいのですが   どおすればよいのか教えてください。   ※UCase・LCaseで変換できるのはしっているのですが    1文字単位でできたいのですが 2.半角の数字のみの入力   aの入力を受け付けないようなことおしたいのですが   できないでしょうか?

  • VB.NET2003 テキストボックスに半角英数字以外入力させない

    お世話になります。 初めてコーディングを行っておりますが、 文字制御についてわからないのでご享受ください。 IMEの設定 Alphaになっているテキストボックスがあります。 こちらに、直接入力や、貼り付けなどで、 全角文字、半角カナが入力されないようにするにはどうしたらよろしいでしょうか? よろしくお願いします。

  • テキストボックスの初期値について

    テキストボックスを配置したのですが 「<INPUT type="text"・・・」 となっているためブラウザで入力するときに初期値が全角日本語文字になってしまいます。 半角数値しか入力しないテキストボックスなので初期値を半角数値(または英数字)にしたいのですが出来るのでしょうか? 検索などをかけて調べてみたのですがそれらしいタグが見つからなかったので質問させていただきました。

    • ベストアンサー
    • HTML
  • wordのテキストボックスの文字入力について

    word2003,2007でも同じですが、テキストボックスフィールドを使用してテンプレートを作っていますが、キーボードタイピングにより入力した時のフォントの大きさが異なります。 入力時に全角入力で入力しf10を押して半角変換したフォントの大きさと、半角入力のまま入力したフォントの大きさが異なります。 なぜでしょうか? フォントの日本語、英数字用のフォントは同じにしています。

専門家に質問してみよう