| 
    
     |  | ▼亜矢 さん: おじゃまします。
 
 >エクセルに表示されている文字の中であまり使われていない文字等を
 >変数に取り込むと"?”となっています。
 
 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 ですから。
 
 
 |  |