[[20100309131848]] 『ユーザーフォームでの文字規制』(ぷう) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ユーザーフォームでの文字規制』(ぷう)
 いつもお世話になってます。
 過去ログ検索したのですが見つけられず、質問させて頂きました。
 ある台帳を作っています。
 台帳への登録、修正等はユーザーフォームからでしか
 出来ないようにしています。
 そこで、登録する項目を英数字、カタカナを
 半角でしか入力出来ないようにしたいのですが
 いい方法はありますでしょうか。
 フォームにはコメントで「半角のみ。全角不可。」
 と表示していますが、あまり効果がありません。
 一度表示させてしまってから、あとで変換する方が早いのでしょうか。
 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.