大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、ひらがなとカタカナの変換は、StrConvで「vbKatakana」や「vbHiragana」を使うとできます。ひらがなやカタカナを区別しないで比較や検索をしたいという場合には、「ひらがな」に統一すればできます。ひらがなやカタカナの操作について、マスターしていきましょう。

はじめに

この記事では、ひらがなとカタカナの変換や比較、検索する方法について、ご紹介します。

ひらがなとカタカナの変換は、「StrConv」で「vbKatakana」や「vbHiragana」を使うとできます。

ひらがなやカタカナを区別しないで比較したい場合は、「ひらがな」に統一して、比較するとできます。

同じひらがなやカタカナを区別しないで検索したいという場合も、「ひらがな」に統一して、比較するとできます。

ひらがなとカタカナの操作について、マスターしていきましょう。

では、ひらがなとカタカナの変換や比較、検索する方法について、解説していきます。

この記事を読むメリット

  • ひらがなとカタカナの変換や比較、検索する方法がわかります。

目次

VBAコードまとめ

ひらがなとカタカナの操作について、VBAコードをまとめています。

VBAコードのみ確認したい場合に、ご活用ください。

'ひらがなとカタカナの変換
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

先ほどと同じように「"アいウえオ"」と「"あイうエお"」は一致する、という結果になります。

StrCompを使って、半角と全角、ひらがなとカタカナを区別しないで、比較できました

結果は、「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

これで、半角と全角、ひらがなとカタカナを、区別しないで検索できます。

半角と全角、ひらがなとカタカナを、区別しないで検索できました

結果は、「True」となって、検索することができました。

こんな感じで、半角と全角、ひらがなとカタカナを、区別しないで検索できます。

InStrにvbTextCompareを使う方法もある

もう少しVBAコードを短くして、「InStr」に引数を入力して、区別しないで文字列を検索することもできます。

Sub TEST12()
  
  '全角と半角、ひらがなとカタカナを区別しないで検索
  Debug.Print InStr(1, "あイうえお", "アイ", vbTextCompare) > 0
  
End Sub

「"あイうえお"」から「"アイ"」を検索することができます。

InStrにvbTextCompareを使って、半角と全角、ひらがなとカタカナを区別しないで、検索できました

結果は、「True」となって、検索することができました。

InStrにvbTextCompareを使って、半角と全角、ひらがなとカタカナを区別しないで、検索できます。

おわりに

この記事では、ひらがなとカタカナの変換や比較、検索する方法について、ご紹介しました。

ひらがなとカタカナの変換は、「StrConv」で「vbKatakana」や「vbHiragana」を使うとできます。

ひらがなやカタカナを区別しないで比較したい場合は、「ひらがな」に統一して、比較するとできます。

同じひらがなやカタカナを区別しないで検索したいという場合も、「ひらがな」に統一して、比較するとできます。

ひらがなとカタカナの操作について、マスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す