文字列を大文字小文字を区別しないで比較する
スポンサーリンク
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
関連するリファレンス
準備中です。
