プロが教えるわが家の防犯対策術!

お世話になります。

VBAを使用して、
セルに、UNICODEE文字が含まれているかのチェックをしたいと考えております。
・できれば、どの文字がUNICODE文字かどうか知りたい。
・最低でもどのセルにUNICODE文字が含まれているか知りたい
という形ですが、もし、ご存知の方教えて頂けないでしょうか?


宜しくお願い致します。

A 回答 (3件)

#2の回答者です。


>最低でもどのセルにUNICODE文字が含まれているか知りたい
ということで、#2のユーザー定義関数を利用した、シート全体を探すマクロを加えておきます。どちらも、標準モジュールを使います。

'//
Sub Macro_8996251()
Dim Rng As Range
Dim c As Variant
On Error Resume Next
Set Rng = ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, 23)
If Err() <> 0 Then Exit Sub
On Error GoTo 0
For Each c In Rng.Cells
 If CheckUNICODE(c.Value) = 1 Then
   c.Interior.ColorIndex = 3
 End If
Next c
End Sub
'///
    • good
    • 0

UNICODE文字というのは、あくまでも、JISに対するUNICODEのみの文字ですね。



Excel VBAというのは、Excel 97の時にUNICODEに対応するようになったのに、未だにVBEditor は、JIS対応のようです。以下は、7年前に、そのUNICODEが、「?」になることを着目して作られたものです。UNICODE文字を直接ヒットするわけでありません。

文字列の中に、UNICODE文字が含まれてれば、1が返る
文字列の中に、外字が含まれていれば、2が返る
そうでなければ、0 になる、
というプログラムです。

'//
Function CheckUNICODE(ByVal txt As String)
Dim i As Integer
Dim c As String
  For i = 1 To Len(txt)
  c = Mid$(txt, i, 1)
  If Asc(c) = 63 Then
   If "?" <> txt Then
   CheckUNICODE = 1 'Unicode
   Exit Function
   End If
  ElseIf AscW(c) > -8193 And AscW(c) < -5887 Then
   CheckUNICODE = 2 '外字
  Else
   CheckUNICODE = 0 '一般(JIS)
  End If
  Next
End Function
    • good
    • 2

「UNICODE文字」とは何を意味していますか。


Windowsで扱える文字は,Symbolのような特殊なフォントに含まれるものとPrivate Use領域に定義した文字を除くと全てUnicodeに収録されている文字になります。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A