Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Excel 2016)
Unicode番号の変換
投稿日時: 22/06/03 19:23:03
投稿者: にゃすを

いつもお世話になっております。
半角のカタカナだけがUnicode番号に変換されてしまったテキストデータがあり、
これらを元の半角カタカナに変換したいのですが、いい方法をご教示ただけませんでしょうか?

\U+FF7D\U+FF9D\U+FF77\U+FF9E\U+FF98,M24

スンギリ,M24
 
よろしくお願いします。
 

回答
投稿日時: 22/06/03 19:41:41
投稿者: taitani
投稿者のウェブサイトに移動
投稿日時: 22/06/03 20:04:57
投稿者: にゃすを

taitaniさん
ありがとうございます。
でも どうしてもできません・・
\U+FF7D が ス に値することは理解できるんですけど
関数をどのように組みあわせて変換できるのか良く分かりません・・
すみません、もう少しご教示いただけませんでしょうか?
 

回答
投稿日時: 22/06/04 00:13:00
投稿者: hatena
投稿者のウェブサイトに移動

下記の関数を標準モジュールに作成してください。
 

Public Function UnicodeToText(s As String) As String
    Dim a, i As Long
    
    a = Split(s, "\U+")
    
    For i = 1 To UBound(a)
        a(i) = ChrW("&H" & Left(a(i), 4)) & Mid(a(i), 5)
    Next
    
    UnicodeToText = Join(a, "")

End Function

 
使用例
 
Dim s As String
s = UnicodeToText("\U+FF7D\U+FF9D\U+FF77\U+FF9E\U+FF98,M24")
MsgBox s  'スンギリ,M24

 

投稿日時: 22/06/04 08:57:40
投稿者: にゃすを

なるほど!
hatenaさん
ありがとうございます☆
ChrWの使い方がよくわかっていなかったのですが
理解できました(いやUnicodeがよく理解できてませんでした・・)。
助かりました。。