ある文字が、漢字ではなく「ひらがなかどうか」を判定するにはどうしたらいいでしょう。
ここでは、セルA1に入力された文字列が「ひらがなで始まっているか」。つまり、左端の1文字がひらがなかどうかを判定してみましょう。
単純にIfで判定するのは現実的ではありません。
Sub Sample1()
If Left(Range("A1"), 1) = "あ" Then
MsgBox "ひらがな"
End If
If Left(Range("A1"), 1) = "い" Then
MsgBox "ひらがな"
End If
'' :
'' :
End Sub
"あ"の文字コードは82A0hで、"ん"の文字コードは82F1hですから、左端の文字が、この範囲内かどうかを判定する手もありますね。
Sub Sample2()
MsgBox Hex(Asc("あ"))
MsgBox Hex(Asc("ん"))
End Sub
こんなときは、Like演算子を使うと便利です。
Like演算子は、任意の文字が、特定の範囲に含まれているかどうかを判定できます。
Sub Sample3()
If Left(Range("A1"), 1) Like "[あ-ん]" Then
MsgBox "ひらがな"
End If
End Sub
しかし、もっと簡単に判定することができます。
それも、使い慣れないLike演算子などではなく、お馴染みのステートメントで。
それには、Select Caseを使います。
Select Caseでは、判定対象が、ある範囲内かどうかを条件に指定できます。
たとえば次のコードは、セルB1に1から5の数値が入力されているとき"OK"と表示します。
Sub Sample4()
Select Case Range("B1")
Case 1 To 5
MsgBox "OK"
End Select
End Sub
これを応用すると「ひらがなかどうか」を次のように判定できます。
Sub Sample5()
Select Case Left(Range("A1"), 1)
Case "あ" To "ん"
MsgBox "ひらがな"
End Select
End Sub
もし、ひらがなだけでなく、カタカナや漢字かどうかを判定したい場合もSelect Caseを使えば簡単です。
Sub Sample6()
Select Case Left(Range("A1"), 1)
Case "あ" To "ん"
MsgBox "ひらがな"
Case "ア" To "ン"
MsgBox "カタカナ"
Case Is >= "亜"
MsgBox "漢字"
End Select
End Sub