| 
    
     |  | ▼kanabun さん: >▼亜矢 さん:
 >おじゃまします。
 >
 >>エクセルに表示されている文字の中であまり使われていない文字等を
 >>変数に取り込むと"?”となっています。
 >
 >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 ですから。
 皆さんありがとうございました。
 漢字を読み取るのでなくコードでやればできそうです。
 
 
 |  |