'ひらがなとカタカナの変換
Debug.Print StrConv("あいうえお", vbKatakana) 'カタカナに変換
Debug.Print StrConv("アイウエオ", vbHiragana) 'ひらがなに変換
Debug.Print StrConv(StrConv("アイウエオ", vbWide), vbHiragana) '半角カタカナを、ひらがなに変換'ひらがなとカタカナの比較'ひらがなとカタカナを区別しないで比較
A = StrConv("アいウえオ", vbHiragana)
B = StrConv("あイうエお", vbHiragana)
Debug.Print A = B
'全角と半角、ひらがなとカタカナを区別しないで比較①
A = StrConv(StrConv("アいウえオ", vbWide), vbHiragana)
B = StrConv(StrConv("あイうエお", vbWide), vbHiragana)
Debug.Print A = B
'全角と半角、ひらがなとカタカナを区別しないで比較②
Debug.Print StrComp("アいウえオ", "あイうエお", vbTextCompare) = 0
'ひらがなとカタカナの検索
ひらがなとカタカナを区別しないで検索
A = StrConv("あイうえお", vbHiragana)
B = StrConv("アイ", vbHiragana)
Debug.Print InStr(A, B) > 0
'全角と半角、ひらがなとカタカナを区別しないで検索①
A = StrConv(StrConv("あイうえお", vbWide), vbHiragana)
B = StrConv(StrConv("アイ", vbWide), vbHiragana)
Debug.Print InStr(A, B) > 0
'全角と半角、ひらがなとカタカナを区別しないで検索②
Debug.Print InStr(1, "あイうえお", "アイ", vbTextCompare) > 0
では、ひらがなとカタカナの操作について、解説していきます。
ひらがなとカタカナの変換
ひらがなとカタカナの変換には、「StrConv」を使います。
カタカナへの変換は「vbKatakana」を第2引数に入力です。
ひらがなへの変換は「vbHiragana」を第2引数に入力になります。
ひらがなをカタカナに変換する(vbKatakana)
ひらがなをカタカナに変換してみます。
第2引数に、「vbKatakana」を入力します。
Sub TEST1()
'カタカナに変換
Debug.Print StrConv("あいうえお", vbKatakana)
End Sub
実行してみます。
カタカナに変換できた
ひらがなをカタカナに変換できました。
全角カタカナをひらがなに変換する(vbHiragana)
次は、全角カタカナをひらがなに変換してみます。
第2引数に、「vbHiragana」を入力します。
Sub TEST2()
'ひらがなに変換
Debug.Print StrConv("アイウエオ", vbHiragana)
End Sub
実行してみます。
全角カタカナをひらがなに変換できた
全角カタカナをひらがなに変換できました。
半角カタカナをひらがなに変換する
半角カタカナの場合は、直接、ひらがなに変換ができません。
半角カタカナは直接ひらがなに変換できない
半角カタカナをひらがなに変換してみます。
Sub TEST3()
'半角カタカナは、ひらがに変換できない
Debug.Print StrConv("アイウエオ", vbHiragana)
End Sub
実行してみます。
半角カタカナのままとなっています。
こんな感じで、半角カタカナは、直接、ひらがなに変換できません。
全角カタカナに変換してひらがなに変換する
半角カタカナを全角カタカナに変換したい場合は、一旦、全角カタカナに変換してひらがなに変換します。
Sub TEST4()
'全角カタカナにして、ひらがなに変換
Debug.Print StrConv(StrConv("アイウエオ", vbWide), vbHiragana)
End Sub
実行してみます。
半角カタカナを全角カタカナに変換すると、ひらがなに変換できました。
文字種を区別しないで比較する
文字種を区別しないで比較する、というのをやってみます。
ひらがなとカタカナを区別しないで比較
ひらがなとカタカナを区別しないで比較してみます。
VBAでは、ひらがなとカタカナは、区別されて比較されます。
ひらがなとカタカナは区別される
「"あいうえお"」と「"アイウエオ"」を比較してみます。
Sub TEST5()
'ひらがなとカタカナは区別される
Debug.Print "あいうえお" = "アイウエオ"
End Sub
一致しないという結果になります。
結果は、「False」で、一致しないという結果になりました。
こんな感じで、ひらがなとカタカナは区別されます。
ひらがなとカタカナを区別せず比較
ひらがなとカタカナを区別せずに比較してみます。
比較する文字列を「ひらがな」に変換して、比較するという感じです。
Sub TEST6()
Dim A, B
'ひらがなに統一する
A = StrConv("アいウえオ", vbHiragana)
B = StrConv("あイうエお", vbHiragana)
'比較する
Debug.Print A = B
End Sub
実行してみます。
結果は、「True」で、一致するという結果です。
ひらがなとカタカナを、区別しないで比較できました。
半角と全角も区別しないで比較
次は、ひらがなとカタカナを、半角と全角も区別しないで比較してみます。
半角と全角、ひらがなとカタカナを区別しないで比較
比較する文字列を「全角」に変換したあと、「ひらがな」に変換してから、比較するという感じです。
Sub TEST7()
Dim A, B
'全角カタカナに変換して、ひらがなに統一する
A = StrConv(StrConv("アいウえオ", vbWide), vbHiragana)
B = StrConv(StrConv("あイうエお", vbWide), vbHiragana)
'比較する
Debug.Print A = B
End Sub
「"アいウえオ"」と「"あイうエお"」は一致する、という結果になります。
結果は「True」となって、一致するという結果になります。
半角と全角、ひらがなとカタカナを区別しないで、比較できました。
StrCompを使う方法もある
もうちょっと簡単な方法として、「StrComp」を使う方法もあります。
「StrComp」を使って、全角と半角、ひらがなとカタカナを区別しないで、比較してみます。
Sub TEST8()
'全角と半角、ひらがなとカタカナを区別しないで比較
Debug.Print StrComp("アいウえオ", "あイうエお", vbTextCompare) = 0
End Sub
先ほどと同じように「"アいウえオ"」と「"あイうエお"」は一致する、という結果になります。
結果は、「True」で一致する、という結果になりました。
StrCompを使って、半角と全角、ひらがなとカタカナを区別しないで、比較できます。
文字種を区別しないで検索する
次は、文字種を区別しないで「検索」してみます。
文字列を検索したいという場合は、「InStr」を使います。
ひらがなとカタカナを区別しないで検索
ひらがなとカタカナを区別しないで検索してみます。
VBAでは、ひらがなとカタカナは区別されて、検索されます。
ひらがなとカタカナは区別される
「"あイうえお"」で「"アイ"」を検索してみます。
Sub TEST9()
'ひらがなとカタカナは区別される
Debug.Print InStr("あイうえお", "アイ") > 0
End Sub
ひらがなとカタカナは、区別されます。
結果は、「False」となって、検索することができません。
こんな感じで、ひらがなとカタカナは、区別されます。
ひらがなとカタカナを区別しないで検索
では、ひらがなとカタカナを区別しないで検索してみます。
考え方は先ほどと同じで、検索元と検索値を「ひらがな」に統一して、検索します。
Sub TEST10()
Dim A, B
'ひらがなに統一する
A = StrConv("あイうえお", vbHiragana)
B = StrConv("アイ", vbHiragana)
'文字列を検索
Debug.Print InStr(A, B) > 0
End Sub
ひらがなとカタカナを、区別しないで検索できます。
結果は、「True」となって、検索することができました。
こんな感じで、ひらがなとカタカナを、区別しないで検索できます。
半角と全角も区別しないで検索
ひらがなとカタカナ、そして、半角と全角も区別しないで検索してみます。
半角と全角、ひらがなとカタカナを区別せず検索
検索元と検索値を「全角」に変換したあと、「ひらがな」に変換して、検索します。
Sub TEST11()
Dim A, B
'全角カタカナに変換して、ひらがなに統一する
A = StrConv(StrConv("あイうえお", vbWide), vbHiragana)
B = StrConv(StrConv("アイ", vbWide), vbHiragana)
'文字列を検索
Debug.Print InStr(A, B) > 0
End Sub