アプリ版:「スタンプのみでお礼する」機能のリリースについて

MS Access VBAでプログラムを組んでいるのですが、
大文字・小文字、全角・半角の区別をしたくて、

if StrConv(a,vbFromUnicode) = StrConv(b,vbFromUnicode) then exit sub

といったif文を書いています(a, bは変数名)。
だいたいうまく行くのですが、a, bの中身が1文字の場合、どんな組み合わせでも条件がTrueになり、処理を抜けてしまいます。

原因、対処方法をご存知の方、ご教授いただけますでしょうか。
よろしくお願いします。

A 回答 (2件)

以下の参考Hpが有効では



参考:
■[VB] 半角文字か全角文字が判定する 【vbFromUnicode】
http://blog.livedoor.jp/keisuke0425/archives/510 …

■ 半角チェック
http://www.accessclub.jp/bbs/0018/beginers8299.h …
    • good
    • 0
この回答へのお礼

なるほど、皆さんいろいろと技をお持ちですね。
ありがとうございました。

お礼日時:2009/12/14 15:16

先ず、モジュールの最初に Option Compare Binary を宣言します。


この宣言文は比較をBinary、つまりコードで比較するという意味です。
これでもダメならStrComp(a, b, vbBinaryCompare)を使います。
StrCompはOption宣言に関わらず指定条件で比較を行います。
私の場合、Option Explicit と、Option Compare Binary は必ず
宣言します。
それと、UniCodeでない文字に対してStrConv(b,vbFromUnicode)を
使うとおかしな結果になります。ついでに言うと、1文字だけなら
AscWという関数で文字のUniCodeを得ることができます。
    • good
    • 0
この回答へのお礼

とりあえず、StrCompで試したところうまく行きました。
そういえばこんな関数ありましたよね。
すっかり忘れていました。

助かりました。
本当にありがとうございました。

お礼日時:2009/12/14 15:15

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