• ベストアンサー

Excel VBA カタカナ セル判定方法

Excel VBAでA列はカタカナ文字のみ入力したいです。 ボタンを押下する事により、A列でカタカナ以外の文字が入っていたらセルの色を変えたいと思っています。 「アイウエオ」OK 「アイウぇオ」NG 「亜イウエオ」NG 「アイウ_エオ」NG 各セルに入っている文字列を一文字ずつ切り出して判定すればできるような気がしますが、物凄い時間がかかりそうです。これを簡単な方法で実現できないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

こんにちは。 >文字列を一文字ずつ切り出して判定すればできるような気がしますが、物凄い時間がかかりそうです。 実際には、その方法でも、考えるほどにはないと思います。 今回は、あえて、正規表現は使わない方式で、#1様とは、ちょっとだけ違う方法で考えてみました。なお、以下のコードは、濁点や半濁点は、全角変換した場合は、StrConvで組み込まれ1字になるのですが、ハンパが出てきた時は、基本的には文字としては、存在しえませんから、"NG"になります。また、半角の長音=マイナス(-)が、第一字目には出てこないことを前提にしています。 '// Sub CheckKatakana() Dim c As Variant For Each c In Range("A1", Cells(Rows.Count, 1).End(xlUp))  If c.Value <> "" Then   If StrConv(c.Value, vbWide) Like "*[!ァ-ヶー][!-]*" Then     c.Interior.ColorIndex = 7 'ピンク   Else     c.Interior.ColorIndex = xlColorIndexNone '訂正後にやれば、色は消えます。   End If  End If Next c End Sub '//

fflashing
質問者

お礼

こんにちは。お礼遅くなりまして申し訳ございません。大変良質なコードでお教え頂きありがとうございます。感謝です!

その他の回答 (1)

  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.1

簡単に ' ' /// Sub Re8530268()   Dim r As Range   For Each r In Range("A1:A4")  '  ◆◆セル範囲を必要に合わせて指定。     If r.Value Like "*[!ヲ-゜ーァ-ヶ]*" Then  '  ※パターン文字列の半角カナに注意!!       r.Interior.Color = vbRed  '  ◆◆塗り潰し色を指定     End If   Next End Sub ' ' /// このサイトでは半角カナの投稿は反映されず一部の文字は文字化けしてしまいます。 Like 演算子に用いるパターン文字列ですが、そちらで正しい文字に書き換えてください。   *[!ヲ-゜ーァ-ヶ]* 4桁め、半角カナのヲ 6桁め、半角半濁点(半角でパを入力した時の2文字目) (7桁め ー、8桁め ァ、10桁め ヶ、以上の3文字は全角で、他は皆半角です。) 以上です。

fflashing
質問者

お礼

こんにちは。お礼遅くなりまして申し訳ございません。大変良質なコードでお教え頂きありがとうございます。感謝です!

関連するQ&A