- ベストアンサー
ifステートメントの大文字小文字を区別しない方法
- ifステートメントで大文字と小文字を区別せずに認識させる方法について説明します。
- バイナリモードを使用することで、ifステートメントでの大文字小文字の区別をなくすことができます。
- また、Replace関数を使用しても大文字小文字を区別せずに値を置換することができます。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは TectCompareを実現したい というのと 大文字小文字を分けずに比較したい というのは少し意味が違います。 前者は[大文字|小文字][全角|半角][ひらがな|カタカナ]などを 区別しないで比較するという意味ですから、 A a A a 皆、同じ、ということになります。 まず、TextCompareの例。 StrComp関数を使います。 Sub test1c() Dim moji As String moji = "a" If StrComp("A", moji, vbTextCompare) = 0 Then MsgBox "AかaかAかaです" End If End Sub 「文字数が同じであることを前提にできる場合」や 「文字列に含まれるかを問う場合」などは InStr関数を優先的に使うことが多いです。 Sub test2c() Dim moji As String moji = "a" If InStr("A", moji, vbTextCompare) Then ' 目的に合わせて↓使い分け ' If InStr("A", moji, vbTextCompare) > 0 Then ' If InStr("A", moji, vbTextCompare) = 1 Then MsgBox "AかaかAかaです" End If End Sub もうひとつは、 モジュールの先頭に Option Compare Text と宣言しておいて Like演算子を使う例。 Sub test3c() Dim moji As String moji = "a" If moji Like "A" Then MsgBox "AかaかAかaです" End If End Sub 次に [大文字|小文字]だけを分けずに比較するということならば UCase関数やLCase関数(←どちらでも同じ)を両辺に使うこともあります。 Sub test4c() Dim moji As String moji = "a" If UCase(moji) = UCase("A") Then MsgBox "Aかaです" End If End Sub 似たような記述ですが、より応用力が高い方法として StrConv関数を使うこともあります。 単一の文字コードのみ扱ってる場合は、 こういう書き方はあまりしませんけれど。 Sub test5c() Dim moji As String moji = "a" If StrConv(moji, vbUpperCase) = StrConv("A", vbUpperCase) Then MsgBox "Aかaです" End If End Sub 上に挙げた例、すべて使い途が違いますから、 一通り"引き出し"に揃えて置いた方が良いです。 目的に応じて「必要なこと」「十分なこと」を確認しながら 使い分けるように出来たら理想ですね。 とりあえず、以上です。
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
次のようにすればよいでしょう。 Sub test() Dim moji As String moji = "a" If UCase(moji) = "A" Then MsgBox "Aかaです" End If End Sub
お礼
ありがとうございました。
お礼
ありがとうございました。