1.16進コードの取得
Excelマクロで特殊文字を削除するメモ
こういう方法もあるが、今回はSplitの表記にもハマったのでメモ。
A1に機種異存文字を1文字入力
ALT+F11でVBEを開く
ascW関数の結果がおかしい
調べ方:アクティブセルに対象となる文字を入れる。
イミディエイトウィンドウにいれる。
?"&H" & hex(Ascw(range(activecell.Address).value))
これをクォーテーションなしでChrWに入れる
UnicodeがあるときのSplitの表記
普通の文字まででいったん二重引用符で綴じる。
& "," & でつなぎChrWを入れる。そのあとまた続ける場合は & "," & ChrW(&H) とする。
最後まできたら、 & 二重引用符二重引用符コンマ二重引用符コンマ二重引用符とする。
下記の例はSplitで配列に入れて、文字を消していくというのをReplaceで行う。
この時に会社の略称の記号も削除しようというものである。
vb.net
Sub replaceUni()
Dim wb As Workbook: Set wb = ThisWorkbook
Dim ws As Worksheet: Set ws = ActiveSheet
Dim buf As String
Dim R As Range
Dim Ar, i As Long
Ar = Split("株式会社,合名会社,合同会社,合資会社,一般財団法人,弁護士法人" & "," & ChrW(&H3232) & "," & ChrW(&H3231) & "", ","): Debug.Print UBound(Ar)
buf = ws.Range("C15").Value
For i = LBound(Ar) To UBound(Ar)
buf = Replace(buf, Ar(i), "", 1, -1, vbTextCompare)
Next i
Debug.Print buf
End Sub