2016-08-20 10 views
2

私のExcel-2013 VBAプロジェクトでは、テキストボックスを持つUserFormがあります。数字、A-Z、a-z、27のヘブライ文字のみを受け入れるには、このテキストボックスが必要です。Excelのvbaでテキストを入力しました。keypiiを使用しました。

Private Sub my_TextBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 
    If (Not (KeyAscii > 47 And KeyAscii < 58)) And _   <= 0-9 
     (Not (KeyAscii > 64 And KeyAscii < 91)) And _   <= A-Z 
     (Not (KeyAscii > 96 And KeyAscii < 123)) And _   <= a-z 
     (Not (KeyAscii > 127 And KeyAscii < 155)) Then   <= Hebrew 
      KeyAscii = 8 
      Beep 
    End If 
End Sub 

ヘブライ語以外は正常に動作します。
ASCII 128〜154はヘブライ語として認識されません(これらの値はASCIIコードページ862にあります)。
つまり、テキストボックスにヘブライ文字を入力しようとすると、ビープ音が鳴ります。
ExcelにASCIIコードページ862を使用するように指示するにはどうすればよいですか?

+0

フォントを変更したり、KeyAsciiの番号が – Slai

+2

であることを確認してみましたか? 'Debug.Print KeyAscii'を試しましたか?それは何が使われているか教えてください... –

+0

@ Dirk Reichel - ありがとう、ダーク。 (それを自分自身で考えなければならない...)。 ** ASCIIのヘブライアルファベットは1488〜1514 **のように見えます。今はうまく動作します。再度、感謝します! – gadi

答えて

0

Dirk Reichelは、ヘブライ文字を入力するときに、my_TextBoxに入るものをデバッグして調べるという簡単なアイデアを教えてくれました。
これは、ASCIIでのヘブライ語のアルファベットが1488から1514の間であることを意味します。
私のコードは次のとおりです。

Private Sub my_TextBox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 
    If (Not (KeyAscii > 47 And KeyAscii < 58)) And _   <= 0-9 
     (Not (KeyAscii > 64 And KeyAscii < 91)) And _   <= A-Z 
     (Not (KeyAscii > 96 And KeyAscii < 123)) And _   <= a-z 
     (Not (KeyAscii > 1487 And KeyAscii < 1515)) Then  <= Hebrew 
     KeyAscii = 8 
     Beep 
    End If 
End Sub 

は今、それはあまりにもヘブライ語が可能になります。
ありがとうダーク。

関連する問題