- ベストアンサー
Excel 条件付き書式:条件を半角文字にしたい
条件付き書式でセルに色を付けたいのですが、 条件は、「半角文字を使用している事」です。 対象となる半角文字は、”英数カナ記号”です。 どのようにすればよいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#01です。補足に対する回答です それはVBAでLenBを求めるときUnicodeでカウントするからです。 Unicodeでは半角文字が1バイトで表現されるわけではありませんので以下のような「システム既定の文字コードに変換する」処理を追加しないとなりません。 Sub Macro() For Each rngCell In Selection X = LenB(StrConv(StrConv(rngCell.Value, vbWide), vbFromUnicode)) Y = LenB(StrConv(rngCell.Value, vbFromUnicode)) If X - Y > 0 Then rngCell.Interior.ColorIndex = 3 End If Next rngCell End Sub ワークシート関数だと(今のところ)このような考慮は必要がありません
その他の回答 (1)
- zap35
- ベストアンサー率44% (1383/3079)
条件付き書式の「数式」を =(LENB(JIS(A1))-LENB(A1))>0 にしたらどうでしょうか。 JIS関数は半角文字を全角文字に変更する関数です。 この数式では「半角文字を使用しているセル」が色付きの対象になります。この条件ではNGでもっと細かな条件が必要なら補足してください。(ユーザ定義関数かマクロが必要になります)
お礼
ありがとうございます。 ご回答いただいたものを基に 目的の操作を下記のように記述してみたのですが、 うまくいきません。 どこが間違っているでしょうか? ************************************************* For Each rngCell In Selection X = LenB(StrConv(rngCell.Value, vbWide)) Y = LenB(rngCell.Value) If X - Y > 0 Then rngCell.Interior.ColorIndex = 3 End If Next rngCell *************************************************
お礼
早速のご回答ありがとうございました。 目的の結果が得られました。