プロが教えるわが家の防犯対策術!

エクセルで作成中のユーザーフォームのふりがなの項目に全角ひらがなのみ入力出来るように、VBAで制限したいのですが、どうすればよいでしょうか?

A 回答 (1件)

テキストボックスのプロパティで


IMEMode -4- fmIMEModeHiragana
とした上で、以下の一つ、または二つ両方を入れてみてください。

'以下は、タブやEnter キーを押した後に、テキストボックスの中を調べます。
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 If TextBox1.Value Like "*[!ぁ-ん]*" Then
  MsgBox "ひらがな以外が混じっています。", vbCritical
  Cancel = True
 End If
End Sub

'以下は半角英数は絶対に入れられないようにしています。
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode >= &H21 And KeyCode <= &HDF Then
    KeyCode = 0
  End If
End Sub


なお、ご存知かとは思いますが、ふりがなは、このようにして出します。
本来は、次候補などを出したい時は、ComboBox などを利用します。

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim FuriganaResult As String
If TextBox2.Value <> "" Then
  FuriganaResult = StrConv(Application.GetPhonetic(TextBox2.Value), vbHiragana)
  If FuriganaResult <> "" Then
   TextBox1.Value = FuriganaResult
  End If
End If
End Sub

添付画像は、TextBox のIMEコントロールのプロパティを選んでいるところです。
「ユーザーフォームの入力規則について」の回答画像1
    • good
    • 0
この回答へのお礼

解決しました

丁寧な説明ありがとうございます。
汎用性の高いコードでした。
大変勉強になりました。

お礼日時:2017/05/08 21:46

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