ExcelのシートはUnicode対応ですが、VBAエディターは今だにShift_JISですので、Shift_JISにない文字はVBAエディター上では入力できません。(中国語、ベトナム語、タイ語はShift_JISにないと思います。)
ワークシート上のセルには、中国語、ベトナム語、タイ語が入力できると思いますので、そこに入力して、それを参照するようにすればどうでしょうか。
vba
1Function aiueo()As Variant
2 abc = Array("日本語", Range("A1"), Range("B1"), Range("C1"))
3End Function
MACは持っていませんので、Windowsの場合の対処法ですが、試してみてはどうでしょうか。
別案
セルに入力しておくというのはちょっという場合は、下記の関数を標準モジュールに作成しておいて、
vba
1Public Sub ConvertChrW()
2 Dim s As String, r As String, i As Long
3 s = ActiveCell.Text
4
5 For i = 1 To Len(s)
6 r = r & " & ChrW(" & AscW(Mid(s, i, 1)) & ")"
7 Next
8
9 Debug.Print Mid(r, 3)
10End Sub
シートのセルに文字化けするテキストを入力しておいて、上記の関数を実行すると
イミディエイトウィンドウに、
vba
1 ChrW(3626) & ChrW(3623) & ChrW(3633) & ChrW(3626) & ChrW(3604) & ChrW(3637)
2
というような式が出力されますので、それをコピーしてVBAエディタに貼り付ければOKです。
(ちなみに、上記の式は「こんにちは」のタイ語の「สวัสดี」をセルに入力して実行した結果です。)
確認コード
vba
1Range("A1").Value = ChrW(3626) & ChrW(3623) & ChrW(3633) & ChrW(3626) & ChrW(3604) & ChrW(3637)
A1セルに「สวัสดี」と表示されます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/17 11:48