教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 関数】StrComp関数の使い方を教えて!

構文

構文は以下の通りです。

StrComp(文字列1, 文字列2, [比較モード])

解説

StrComp関数は、テキストの比較を簡単に行うことができます。

引数 指定 内容
文字列1 必須 比較する最初の文字列を指定します。
文字列2 必須 比較する2番目の文字列を指定します。
比較モード 省略可 比較方法を指定するオプションの引数です。デフォルトではバイナリ比較が行われます。設定値を以下で紹介します。

比較モードには以下の設定値が指定できます。

定数 内容
vbBinaryCompare 0 バイナリ比較を行います。大文字と小文字が区別されます。
vbTextCompare 1 テキスト比較を行います。大文字と小文字は区別されません。
vbDatabaseCompare 2 データベースのソート順序に基づいた比較を行います。

使用例

StrComp("Apple", "apple")

使い方

具体的な使い方を紹介します。

1.バイナリ比較の場合(デフォルト)

Sub BinaryCompareExample()
    Dim result As Integer
    result = StrComp("Apple", "apple")
    MsgBox result
End Sub

この例では、result変数には1が格納されます。なぜなら、バイナリ比較が行われるため、大文字と小文字が区別されるからです。

2.テキスト比較の場合

Sub TextCompareExample()
    Dim result As Integer
    result = StrComp("Apple", "apple", vbTextCompare)
    MsgBox result
End Sub

この例では、result変数には0が格納されます。テキスト比較が行われるため、大文字と小文字が区別されません。

3.データベース比較の場合

Sub DatabaseCompareExample()
    Dim result As Integer
    result = StrComp("Apple", "apple", vbDatabaseCompare)
    MsgBox result
End Sub

この例では、result変数には1が格納されます。データベースのソート順序に基づいた比較が行われるため、大文字と小文字が区別されます。

プログラミング例

以下に、プログラミング例を紹介します。

例えば、ある文字列が特定のパターンに一致するかどうかを確認したい場合に使用することができます。

Sub CheckStringPattern()
    Dim inputString As String
    inputString = InputBox("文字列を入力してください") ' ユーザーに文字列の入力を促す
    ' "apple"との比較を行う
    If StrComp(inputString, "apple", vbTextCompare) = 0 Then
        MsgBox "入力された文字列は「apple」と一致します。"
    Else
        MsgBox "入力された文字列は「apple」と一致しません。"
    End If
End Sub

この例では、ユーザーに文字列の入力を促し、入力された文字列が「apple」と一致するかどうかを判定しています。StrComp関数の結果によって、一致しているかどうかをメッセージボックスで表示しています。

まとめ

StrComp関数は、テキストの比較に便利な機能です。バイナリ比較、テキスト比較、データベース比較など、さまざまな比較方法を選択することができます。プログラミングにおいて、文字列の一致を確認したり、条件文やループ処理で使用する際に活用できます。是非活用してください。