プロが教えるわが家の防犯対策術!

select case 大文字小文字を区別しないようにするには?

Sub test01()
Dim str As String
str = "A"

Select Case str
Case "a"
MsgBox "aです"
Case "A"
MsgBox "aです"
End Select

End Sub

これだと、半角全角がヒットしないのはなんとなくしょうがないかな、と思うのですが
大文字小文字がちがくてもヒットさせるにはどうすればいいですか?

Sub test01()
Dim str As String
str = "A"

Select Case str
Case "a", "A"
MsgBox "aです"

End Select

End Sub

とするしかないでしょうか?

大文字小文字区別なく評価する方法があれば教えてください。よろしくお願いします。

A 回答 (2件)

こんばんは!



>大文字小文字区別なく・・・
に関しては
大文字・小文字関係なく、たとえば大文字に変換したものが「A」であれば「aです」といったやり方はどうでしょうか?

Sub test01()
Dim str As String
str = "a"
If UCase(str) = "A" Then
MsgBox "aです"
End If
End Sub

※ 小文字に変換する場合は
If LCase(str) = "a" Then
といった感じになります。m(_ _)m
    • good
    • 1
この回答へのお礼

どうもありがとうございました。

お礼日時:2013/06/15 09:36

fibwrhhzlc7様


こんにちは。

大きく方法は2つあると思います。
どちらかで対応して下さい。

1.モジュール単位に半角・全角、大文字・小文字を区別しない方法
 モジュールの先頭に「Option Compare Text」を指定すればOKです。
 ※ひらがな、カタカナの区別もしませんので注意が必要です。

Option Compare Text
Sub test01()
 Dim str As String
 str = "A"
 Select Case str
  Case "a"
   MsgBox "aです"
 End Select
End Sub

Sub test02()
 Dim str As String
 str = "あ"
 Select Case str
  Case "ア"
   MsgBox "アです"
 End Select
End Sub
----------------------------

2.関数で半角・全角変換、大文字・小文字変換を行う。
  ・LCase関数        … 大文字を小文字に変換
  ・StrConv関数のvbNarrow … 全角を半角に変換

Sub test03()
 Dim str As String
 str = "A"
 Select Case StrConv(LCase(str), vbNarrow)
  Case "a"
   MsgBox "aです"
 End Select
End Sub
    • good
    • 0
この回答へのお礼

どうもありがとうございました。

お礼日時:2013/06/15 09:36

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