文字列を大文字小文字を区別しないで比較する
スポンサーリンク
VB6 では、Option Compare ステートメントを Text に指定すれば、小文字または大文字を区別しないようになるようですが、国別情報によって決定されるものですので、頼らない方が無難と言えます。LCase$ 関数、または UCase$ 関数などで統一した後、比較する方が確実でしょう。
あまり利用価値はないと思いますが、以下のような関数を自作します。
サンプルコード
以下にサンプルコードを示します。
VB6.0 以前
' ------------------------------------------------------------------------------- ' 文字列を比較します。 ' ' @Param st1 第 1 の文字列。 ' @Param st2 第 2 の文字列。 ' @Param [bIgnore] 小文字または大文字の区別をしないかどうか。 ' @Return 文字列が等しい場合は 0。第 1 の文字列が大きい場合は 1。 ' それ以外の場合は -1。 ' ------------------------------------------------------------------------------- Public Function CompareString(ByVal st1 As String, ByVal st2 As String, Optional ByVal bIgnore As Boolean = False) As Integer If bIgnore Then st1 = LCase$(st1) st2 = LCase$(st2) End If If st1 = st2 Then CompareString = 0 ElseIf st1 > st2 Then CompareString = 1 Else CompareString = -1 End If End Function
使用例は以下のようになります。
VB6.0 以前
' 必要な変数を宣言する Dim stTarget1 As String stTarget1 = "ABCDEF" Dim stTarget2 As String stTarget2 = "abcdef" Dim iCompare As Integer ' stTarget1 の文字列と stTarget2 の文字列を小文字または大文字を区別しないで比較する iCompare = CompareString(stTarget1, stTarget2) ' 比較した結果を表示する If iCompare = 0 Then Call MsgBox(stTarget1 & " と " & stTarget2 & " は等しい") ElseIf iCompare > 0 Then Call MsgBox(stTarget1 & " の方が大きい") Else Call MsgBox(stTarget2 & " の方が大きい") End If
関連するリファレンス
準備中です。