HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > ひらがなかどうかを判定する

即効テクニック

セル操作関連のテクニック

ひらがなかどうかを判定する

(Excel 97/2000/2002/2003/2007)
ある文字が、漢字ではなく「ひらがなかどうか」を判定するにはどうしたらいいでしょう。
ここでは、セル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