[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ユーザーフォームでの文字規制』(ぷう)
いつもお世話になってます。 過去ログ検索したのですが見つけられず、質問させて頂きました。 ある台帳を作っています。 台帳への登録、修正等はユーザーフォームからでしか 出来ないようにしています。 そこで、登録する項目を英数字、カタカナを 半角でしか入力出来ないようにしたいのですが いい方法はありますでしょうか。 フォームにはコメントで「半角のみ。全角不可。」 と表示していますが、あまり効果がありません。 一度表示させてしまってから、あとで変換する方が早いのでしょうか。 VBA上で、JISやASCのような機能を動かすことは出来るのでしょうか。 すみませんが、宜しくお願いします。
個人的意見。 マクロで半角に変換してやると、使用者は、まるっきり気にしなくなるので、 半角でなかったら、拒否する形のほうがいいと思う。 一応これで半角には出来るけど、比較用に使った方がいいと思う。 MsgBox StrConv("アイウエオ", vbNarrow) (Jaka)
こんな感じでチェックして消してしまうとか
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) With CreateObject("VBScript.RegExp") .Global = True .IgnoreCase = True .Pattern = "[^a-zA-Z0-9ヲ-゚]+" If .test(Me.TextBox1.Value) Then MsgBox "使用禁止文字があります" Me.TextBox1.Value = "" End If End With End Sub
マクロで強制的に変換+除外とか
Private Sub TextBox1_Change() Dim m As Object Me.TextBox1.Value = StrConv(Me.TextBox1.Value, vbNarrow + vbKatakana) With CreateObject("VBScript.RegExp") .Global = True .IgnoreCase = True .Pattern = "[^a-zA-Z0-9ヲ-゚]+" For Each m In .Execute(Me.TextBox1.Value) Me.TextBox1.Value = Replace(Me.TextBox1.Value, m.Value, "") Next m End With End Sub
何が一番良いかと言うと、ちゃんと半角入力を守るように教育する事が一番かな〜と思いますけど。 (momo)
Jakaさま momoさま お礼が遅くなりすみません。 そうなんです! どうしてルールが守れないのかな。と。 少しは意識して欲しいです。 今回は、momoさまの"チェックして消す"方法を とらせて頂きました。 ありがとうございました!!
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.