文字列の内容 StrComp関数

StrComp関数は文字列の内容を比較します。

StrCompの構文

StrComp(string1, string2, [ compare ])

StrComp(文字列1, 文字列2, [ 比較方法 ])

[]内は省略可能です。省略した場合はバイナリーモードです。

比較方法はバイナリーモード(vbBinaryCompare)とテキストモード(vbTextCompare)があります。

戻り値の内容

条件戻り値
string1 が string2 より小さい-1
string1 が string2 と等しい0
string1 が string2 より大きい1
string1 または string2 が Null であるNull

文字列の比較方法

バイナリモードの場合は文字コードの番号で比較されます。

テキストモードの場合はひらがなやカタナカや英字の順番で比較されます。

バイナリモードで”a”(10進数で97)と”b”(10進数で98)で比較すると、”a”の方が小さいため-1が返却されます。

同様に”A”(10進数で65)と”a”(10進数で97)を比較すると、”A”が小さいため-1が返却されます。

テキストモードの場合は”A”(10進数で65)と”a”(10進数で97)を比較すると、等しいと認識されて0が返却されます。

StrCompの使用例

string1 が string2 より小さい

string1 が string2 と等しい

string1 が string2 より大きい

string1 または string2 が Null である

・比較方法を指定して実行する

・表から文字列を取得して比較する

の内容で説明をしていきます。

string1 が string2 より小さい

アルファベットで比較

Sub StrComp1()

    MsgBox "aとbを比較 戻り値" & StrComp("a", "b")
    
End Sub

数値で比較

Sub StrComp2()

    MsgBox "1と2を比較 戻り値" & StrComp(1, 2)
    
End Sub

ひらがなで比較

Sub StrComp3()

    MsgBox "あといを比較 戻り値" & StrComp("あ", "い")
    
End Sub

それぞれstring1 < string2 のため戻り値が-1です。

string1 が string2 と等しい

アルファベットで比較

Sub StrComp4()

    MsgBox "abとabを比較 戻り値" & StrComp("ab", "ab")
    
End Sub

数値で比較

Sub StrComp5()

    MsgBox "1と1を比較 戻り値" & StrComp(1, 1)
    
End Sub

ひらがなで比較

Sub StrComp6()

    MsgBox "あとあを比較 戻り値" & StrComp("あ", "あ")
    
End Sub

それぞれstring1 = string2 のため戻り値が0です。

string1 が string2 より大きい

アルファベットで比較

Sub StrComp7()

    MsgBox "bとacを比較 戻り値" & StrComp("b", "ac")
    
End Sub

数値で比較

Sub StrComp8()

    MsgBox "10と1を比較 戻り値" & StrComp(10, 1)
    
End Sub

ひらがなで比較

Sub StrComp9()

    MsgBox "いとあうを比較 戻り値" & StrComp("い", "あう")
    
End Sub

それぞれstring1 > string2 のため戻り値が1です。

string1 または string2 が Null である

Sub StrComp10()

    MsgBox "あとNullを比較 戻り値" & StrComp("あ", Null)
    
End Sub

string2がNullのため戻り値がNullです。

比較方法を指定して実行する

比較方法ですが、大文字小文字全角半角を比較するしないの設定が出来ます。

全角と半角で比較する(vbBinaryCompare)

Sub StrComp11()

    MsgBox "bとbを比較 戻り値" & StrComp("b", "b", vbBinaryCompare)
    
End Sub

全角と半角で比較しない(vbTextCompare)

Sub StrComp12()

    MsgBox "bとbを比較 戻り値" & StrComp("b", "b", vbTextCompare)
    
End Sub

全角と半角を比較していますが戻り値が0です。

大文字と小文字で比較する

Sub StrComp13()

    MsgBox "Bとbを比較 戻り値" & StrComp("B", "b")
    
End Sub

大文字と小文字で比較しない(vbTextCompare)

Sub StrComp14()

    MsgBox "Bとbを比較 戻り値" & StrComp("B", "b", vbTextCompare)
    
End Sub

大文字と小文字で比較していますが戻り値が0です。

表から文字列を取得して比較する

C列とD列の文字列を比較してE列に戻り値を設定します。

Sub StrComp15()
    
    Dim str1, str2 As String
    Dim i As Integer
    i = 2
    
    Do While Cells(i, 3) <> ""
        'セルから文字列を取得
        str1 = Cells(i, 3)
        str2 = Cells(i, 4)
        'セルにStrCompの戻り値を設定
        Cells(i, 5) = StrComp(str1, str2)
        
        i = i + 1
    Loop
        
End Sub

E列に比較した戻り値が設定されました。

今回はStrComp関数について記載させて頂きました。

少しでも皆様の参考になれば幸いです。

Published by

不明 のアバター

yuuya

 現在フリーランスとして仕事を行っております。 新卒でIT企業に入社して、某ECサイトの開発、某銀行の滞納者管理システムの開発、某携帯キャリアのアクセス位置制御システムの開発などの色々なシステム開発に携わって参りました。 体調を崩して他業種に転職をしましたがIT技術を生かし、業務の効率化を提案して2時間かかる作業を2分で終らせられる様に作業の自動化などを行ってきました。  私は働きすぎて体を壊したので私の知識で、少しでも皆様の帰宅時間を速める事が出来るなら幸いです。

コメントを残す