Access 全角英数と半角英数の比較

このQ&Aのポイント
  • AccessVBAで全角英数と半角英数を比較する際に、意図した動作と異なる結果が出ることに気づきました。
  • 具体的なコードの例として、半角英数と全角英数を文字列として代入し、比較した場合に同じと判断される問題があります。
  • 違う表記方法や正しい比較方法があるのか、教えていただきたいです。
回答を見る
  • ベストアンサー

Access 全角英数と半角英数の比較

Access2003, WindowsXP AccessVBAで以下のような比較を書いていたのですが、こちらの意図と違う動作をしていることに気づきました。 Dim strA as String Dim strB as String strA = "123abc" '半角英数 strB = "123abc" '全角英数 If strA = strB then  Msgbox("strAとstrBは同じです") Endif 上のコードをそのまま実行すると、strAとstrBは同じであると判断されてしまいます。 こちらの意図としては、比較した2つの変数は「全角英数」と「半角英数」という点で違う値として認識して欲しいのですが、上のような表記方法ではダメなのでしょうか。 正しい比較方法などがあるようでしたら、教えていただきたいです。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#140971
noname#140971
回答No.1

[イミディエイト] ? "123abc" = "123abc" True ? StrConv("123abc", vbFromUnicode)=StrConv("123abc", vbFromUnicode) False ? StrConv("123abc", vbFromUnicode)=StrConv("123abc", vbFromUnicode) True ? StrComp("123abc", "123abc", 0)=0 True ? strComp("123abc", "123abc", 0)=0 False こんな感じで比較します。

tom7net
質問者

お礼

なるほど・・・ できました。ありがとうございます!

関連するQ&A

  • IFステートメントで半角でも全角でもtrueとさせ

    IFステートメントで半角でも全角でもtrueとさせるには? Sub test1() Dim str As String str = "ABC"’←全角のA If str Like "*A*" Then ’←半角のA MsgBox "Aがあります" End If End Sub これで、半角Aもメッセージを表示させたいのですが、 マッチバイトみたいなのってありますか?

  • VBScript 全角英数記号→半角英数記号に

    ASP(VBScript)での開発をしています。 全角英数記号を、半角英数記号に変換したくて、以下のメソッドを 作りました。 Function FunFullToHalf(ByVal StrTarget) Dim ObjBASP21 Dim StrHalf Set ObjBASP21 = Server.CreateObject("basp21") StrHalf = ObjBASP21.StrConv(StrTarget,8) FunFullToHalf = StrTarget End Function しかし、これだと、全角カタカナまで半角になってしまい、困っています。 回避策を教えていただけないでしょうか。

  • 半角英数での記号の打ち方

    半角英数で、 ・ という黒点はどうやって打つのでしょう?? (上の点は全角で打ちました。) また全角だと、“”というように、 ダブルクオートの向きが対になりますが、 半角英数の場合も同じように打てるのでしょうか?

  • JSで全角英数記号を半角英数記号に。

    JavaScriptで、全角英数記号が含まれていたら、半角英数記号に したいと思っています。 たとえば、123456→123456といった具合です。 ネットを参考にしたのですが str.replace(/[A-Za-z0-9]/g, function(s) { return String.fromCharCode(s.charCodeAt(0) - 65248); }); このロジックが近いのですが、英数字までです。 記号1つ1つ指定してreplaceではかなり手間ですよね…。 効率よく記号も半角英数にするにはどうすればよいでしょうか?

  • VB2008で全角半角の判定

    VB2008で全角半角の判定 VB6 では下記のようにして判定していましたが、VB2008では どのようにすればよいのかお教えください。  dim moji as string dim zhN as integer  zhN = LenB(StrConv(moji, vbFromUnicode)) mojiには1文字格納されており、  半角なら zhN = 1 全角なら zhN = 2 となる。  これをVB2008で実現する方法がわかりません。  よろしくお願いします。

  • キーボードでの「英数(全角/半角)」変換

     言語変換関係の質問は、「言語バー」「キーボード」関係で、多数あるのですが、どれが自分の探している症状なのか分からないので、新しく質問します。  PCはSOTECのWV2150Cで、OSはWindowsXPで、ローマ字入力しています。  キーボードによる、「英字和字」変換と、「英字の全角・半角」変換が、自分の意図しない変換に、どういうわけか、時々変わってしまいます。言語バーをマウスでクリックするのは面倒なので、キーボードで操作したいのですが、それが、コントロール不能になってしまうわけです。  具体的には、まず「英字の全角」と「和字の全角」の相互変換ですが、うまくいっているときは、通常和字にしているときキーボードの「英数・CapsLock」を押すだけで「英字全角」に変換できます。また押せば、元に戻せます。しかし、何かの拍子で、このキーを押すと、「英字の半角」になってしまい、どうしても「英字の全角」になりません。しかし、時間が経って、いつのまにか、相互変換できるように戻っていることもしばしばです。  「英字の半角」はキーボード上部の「半角/全角」キーで「英字半角」と「和字全角」とが相互変換できるので、「英数・CapsLock」キーでは、「和字全角」と「英字全角」の相互変換を維持したいわけです。というより、このキーの操作を、どちらも使えるよう、自分でコントロールしたいわけです。  自分でコントロールするためには、「英数・CapsLock」キーを押すと、何かの拍子で、「英字全角」になったり「英字半角」になったりする、その「何かの拍子」が分かればいいと思うのですが、それが、分かりません。  PCの種類によって、キーボード操作は違うのかもしれませんが、一つ、よろしくお願いいたします。

  • 【Excel VBA】A列の全角・半角文字をチェック

    【Excel VBA】A列の全角・半角文字をチェック Excel VBAの初心者です。 仕事で必要なため、教えていただけると助かります。 【やりたいこと】 Excel VBAで、入力が完了したExcelシートのA列(A1からA10)が、 半角のみであること、または全角が入力されていないこと、を チェックしたいです。 半角以外の文字があった場合は、メッセージを表示します。 また、半角以外のセルがあった場合は、そのセルの色を水色にします。 入力チェックの方法は、ボタンにマクロを登録して、 そのボタンを押下することで行います。 以下に、僕が試したプログラムを記します。 アドバイスをいただけると幸いです。よろしくお願いします。 Sub 入力チェック() Dim cellValue As String Dim strANSI As String Dim i As Integer For i = 0 To 10 cellValue = Cells(1, i + 1) strANSI = StrConv(cellValue, vbFromUnicode) If Len(cellValue) = LenB(strANSI) Then MsgBox "セルは半角のみ" myColor = 8 Else MsgBox "セルの内容は全角のみ" End If MsgBox "セルの内容は全角と半角があり" Next i End Sub

  • 半角カタカナのみ全角にするには

    http://bekkoame.okwave.jp/qa8426331.html を参考にvbaコードを作っています。 "あああイイイ"(「イイイ」のみ半角カタカナ) を "あああイイイ" にしたいのですが、 Sub Macro01() Dim str置換前 As String '置換前の文字列 Dim str置換後 As String '置換後の文字列 Dim i As Integer str置換前 = "あああイイイ" str置換後 = str置換前 For i = 31850 To 31936 str置換後 = Replace(str置換後, StrConv(Chr(-i), vbNarrow), Chr(-i)) Next i MsgBox str置換前 MsgBox str置換後 End Sub を実行すると、 「あああ」が全角カタカナになり、「アアアイイイ」になってしまいます。 For i = 31850 To 31936 の部分に原因があるのかな、とは思いますが、 For i = 31850 To 31936の意味がよくわからないままコピペで使ってしまいました。 多分文字コードの数値だと思うのですが、どう変更すれば、ひらがなは除外されますか? よろしくお願いします。

  • カタカナのみを半角から全角に変換したいのですが

    VBAについて教えてください。 文字をHPにアップできるように、カタカナのみを半角から全角に変換したいのですが 何か良い方法はありますか? 文字は英字・ひらがな・カタカナ・漢字がランダムに入っています。 例えば Sub test() Dim a As String a = "aaaアアア<>BBB" End Sub の状態で。「アアア」のみを全角にするにはどうすればいいでしょうか? アルファベットは半角のままにしたいです。

  • ウィンドウズの原語をひらがなと半角英数だけに

    高齢の母がパソコンを使えるようになりたいと申しております。比較的機械に強く、認知症防止にワープロを出来たら良いと思ってパソコンを購入したのですが、時々ご動作でひらがなを使っていたのが全角英数になったりしています。キーボード左上の半角全角漢字ボタンだけで、ひらがなと半角英数だけの切り替えとするために、全角カタカナ、全角英数、半角カタカナを削除したいのですが、どなたか方法ご存知でしたらご教示願います。

専門家に質問してみよう