- 締切済み
Access VBA について
お世話になっております。 Access VBAを勉強しております。 テキストボックスに漢字とひらがなしか入力できないようにするにはどうすれば良いでしょうか。 Select Case等を使ってできないでしょうか。 初心者のため初歩的な質問で恐縮ですが、ご教授お願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- BarcodeMaster
- ベストアンサー率73% (17/23)
これは何かの課題なのでしょうかね? それともお仕事? よくあるのが、「全角文字で入力してください。」という条件に対して、半角があったらエラーにするということ。これはStrConvでできそう。 If strBuff <> StrConv(strBuff, vbWide) Then Call MsgBox("全角文字でって書いてるでしょう?", vbExclamation) End If StrConvはカタカナとひらがな変換もあるから、カタカナも排除できますね。 If strBuff <> StrConv(strBuff, vbHiragana) Then Call MsgBox("カタカナは勘弁してください。", vbExclamation) End If まあ、厳密にやりたいのであれば、文字コード表を調べて、1文字ずつ判断するしかないでしょうね。労力を考えると、仕様を見直したほうが良いと思います。 どちらにせよ「入力できないようにする」よりも、上記のように入力値を判定するようにしたほうがいいとは思います。
- NotFound404
- ベストアンサー率70% (288/408)
たたき台レベルです。 テキストボックスの更新前処理に Private Sub テキストボックス名_BeforeUpdate(Cancel As Integer) Dim i As Long, sStr As String sStr = Me!テキストボックス名 For i = 1 To Len(sStr) If Mid(sStr, i, 1) Like "[ぁ-ん亜-黑]" = False Then Beep Me!テキストボックス名.SelStart = i - 1 Me!テキストボックス名.SelLength = 1 Cancel = True Exit Sub End If Next End Sub とすれば近いことはできます。 更新しようとした時に対象外の文字があれば、そこでBeep音が鳴ります。 が、 半角/全角のスペースの扱いは今のところ?です。-----1 さらに、ヽヾゝゞ〃仝々〆 をどうするかについても今のところ?です。-----2 (いすゞ自動車など) Accessのバグのため文字(ヾゞ)の扱いが面倒です。 Access2013だと修正されているらしい。当方Win7 & Access2010。 あと、上記コードは、Shift-Jis の範囲内でのチェックだけです。-----3 文字コード表(charmap.exe)とにらめっこする必要もありそう。
- fmxBeem
- ベストアンサー率54% (325/599)
回答1です。テキストボックスのフォーカス取得時か何かのイベントに IF テキストボックス.IMEMode <> 4 then Msgbox "ひらがなではありません" テキストボックス.IMEMode=4 End if https://msdn.microsoft.com/ja-jp/library/office/ff837038.aspx?f=255&MSPPError=-2147217396
- fmxBeem
- ベストアンサー率54% (325/599)
1.フォーム上の目的のテキストボックスのプロパティシートを開く。 (※テキストボックスをダブルクリックで開きます) 2.「その他」タブを選択し、IME入力モードを「ひらがな」にする。
補足
言葉足らずで申し訳ありません。 コードで表現したいのです。 また、それ以外の時はmsgboxでエラーを出したいです。 回答ありがとうございます。