|
▼亜矢 さん:
おじゃまします。
>エクセルに表示されている文字の中であまり使われていない文字等を
>変数に取り込むと"?”となっています。
Unicodeだけにある文字ですと、そうなりますね。
たとえば
[A1] リッター
[A2] センターライン (CとLを重ねたもの)
[A3] 華氏 (摂氏 ℃ の 華氏版)
[A4] Care of (c/o)
などなど...
これらの文字は Excelシートには表示されますが、
VBAウィンドウでは ? に変わります。
Sub Test1()
Dim c As Range
Dim ss As String
Dim j As Long
For Each c In [A1:A4]
ss = c.Value
Debug.Print ss, '---イミディエイト・ウィンドウに出力
For j = 1 To Len(ss)
Debug.Print AscW(Mid$(ss, j, 1)); '文字コードを出力
Next
Debug.Print
Next
End Sub
から分かるように、表示はできません。
表示はできませんが、変数ss にはちゃんとUnicodeが入っています。
その証拠に、[A1:A4]セルに上のような Unicode文字を打ち込んで、
変数ss に この文字列を代入して、となりのB列に変数 ss の内容を
貼りつけてみると、ちゃんと表示されます。
Sub Test2()
Dim c As Range
Dim ss As String
For Each c In [A1:A4]
ss = c.Value
c(1, 2).Value = ss
Next
End Sub
ということは、
変数での文字列比較、抽出はふつうに出来そうな気がしますが。
VBA内部の文字列処理は Unicode ですから。
|
|