
No.7ベストアンサー
- 回答日時:
以下のマクロは
①A1~A10の漢字をUnicodeに変換し、B列から右側に出力します。
添付図の上側参照(黄が元データ、赤が変換結果)
②A11~A20行のUnicode(B列から右側に表示)を漢字に変換し、
A11~A20に変換します。
添付図の下側参照(黄が元データ、赤が変換結果)
①
Public Sub Kanji_to_Unicode()
Dim wrow As Long
Dim i As Long
Dim moji As String
Dim ws As Worksheet
Set ws = ActiveSheet
For wrow = 1 To 10
moji = ws.Cells(wrow, 1).Value
If moji <> "" Then
For i = 1 To Len(moji)
Dim cd As Long
cd = AscW(Mid(moji, i, 1))
If cd < 0 Then cd = cd + 65536
Cells(wrow, i + 1).Value = "\u" & Hex(cd)
Next
End If
Next
End Sub
②
Public Sub Unicode_to_Kanji()
Dim wrow As Long
Dim wcol As Long
Dim maxcol As Long
Dim moji As String
Dim ws As Worksheet
Set ws = ActiveSheet
For wrow = 11 To 20
maxcol = Cells(wrow, Columns.Count).End(xlToLeft).Column
If maxcol > 1 Then
moji = ""
For wcol = 2 To maxcol
Dim val As String
val = Cells(wrow, wcol).Value
If Left(val, 2) = "\u" Then
val = Mid(val, 3)
moji = moji & ChrW("&H" & val)
Else
moji = "不正文字コード"
Exit For
End If
Next
Cells(wrow, 1).Value = moji
End If
Next
End Sub
参考になれば幸いです。

No.6
- 回答日時:
下記のマクロは、A1~A10の人名中の漢字の使用状態をB1~B10に設定するマクロです。
1文字でも漢字を使用していれば、TRUEになります。1文字も漢字を使用していない場合はFALSEになります。Unicodeが\u4E00 以上の文字を漢字と判定します。
下記URL参照
http://www.ys-labo.com/pc/2015/Unicode.html
Public Sub 漢字判定()
Dim wrow As Long
Dim moji As String
Dim ws As Worksheet
Set ws = ActiveSheet
For wrow = 1 To 10
moji = ws.Cells(wrow, 1).Value
If moji <> "" Then
ws.Cells(wrow, 2).Value = KANJI_HANTEI(moji)
End If
Next
End Sub
Private Function KANJI_HANTEI(ByVal moji As String)
Dim ll As Long
Dim i As Long
Dim ucode As Long
KANJI_HANTEI = False
For i = 1 To Len(moji)
ucode = AscW(Mid(moji, i, 1))
If ucode < 0 Then ucode = ucode + 65536
If ucode >= &H4E00 Then
KANJI_HANTEI = True
Exit Function
End If
Next
End Function

No.5
- 回答日時:
>全ての人名の中には漢字に変換候補がなくカタカナであらわされている方がいるので、カタカナから漢字の変換と
これは、思いつきません。
オダノブナガ から 織田信長 にしたい。
にする方法は、人間が判断するか、AIに判断させるかのどちらかになるかと思います。VBAのマクロでは手に負えないかと思います。
>外国人の中には日本人と結婚されている方がおおく、全てがカタカナであらわされている外国人を抽出するのが目的です。
これは、カタカナの範囲を文字コードの範囲で定義し、その範囲内に
全て収まっていれば、全てがカタカナであると判断できます。
この回答へのお礼
お礼日時:2024/03/15 09:32
返信ありがとうございます
上部のは、fujillinさんの案にも基づいて考えていきたいと思います
下部のは[ ]で囲ったカタカナの文字コードで頑張ろうも思います。
No.4
- 回答日時:
>1と2、両方です
具体的に例を挙げて説明していただけませんでしょうか。
①と②の両方ということはあり得ないはずです。
この回答へのお礼
お礼日時:2024/03/15 07:28
全ての人名の中には漢字に変換候補がなくカタカナであらわされている方がいるので、カタカナから漢字の変換と
外国人の中には日本人と結婚されている方がおおく、全てがカタカナであらわされている外国人を抽出するのが目的です
No.3
- 回答日時:
すみません。
あなたが何をなさりたいのかがよくわかりません。例えば、織田信長という人名の場合、 あなたがなさりたいのは、以下のどれでしょうか。
①.織田信長 という文字から、そのUnicodeを取得したい。
(\u7E54 \u7530 \u4FE1 \u9577 を取得したい)
②.その人名のunicodeはわかっているので、そのunicodeから人名を取得したい。
(\u7E54 \u7530 \u4FE1 \u9577から"織田信長"という文字を取得したい)
③.上記の①、②のどちらでもない。
③の場合は、織田信長を例にして、あなたがなさりたいことを、具体的に提示していただけませんでしょうか。
No.2
- 回答日時:
>過去20年くらいの名簿の中に世界各国人名が沢山ありまして
それは、excelのシートに書かれているのでしょうか。
実際に書かれているサンプルを提示していただけると、良い回答が得られやすくなるかと。
No.1
- 回答日時:
こんにちは
Unicodeの文字コードがわかっていて、それをセルなどに表示したいという意味と解釈しました。
基本的にUnicodeの文字コードを文字に変換するには
ChrW()
関数を利用すれば可能です。
例えば、
Function unicodeWord(ByRef a) As String
Dim i
unicodeWord = ""
For i = LBound(a) To UBound(a)
unicodeWord = unicodeWord & ChrW(a(i))
Next i
End Function
のような関数を作成しておいて・・
'アラビア語
Range("A1").Value = unicodeWord(Array(1691, 1697, 1705))
'楔形文字
Range("A2").Value = unicodeWord(Array(55304, 56322, 55304, 56337))
のような処理を実行すれば、A1、A2セルにそれぞれの字句を表示できます。
(当然ですが漢字も同様です。上の例は単なる例で、字句に意味はありません。)
文字コードが16進表記の場合は、&H○○○○などとすれば良いです。
(1文字だけの変換なら、上記の関数も不要なので直接cChrW関数で・・)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「初め」か「始め」どちら?
-
この文字の変換方法を教えて
-
「~していただきまして、あり...
-
値引を表すのは▲?▼?
-
「時間がたつ」の「たつ」は、...
-
「乃」っていう漢字は、電話で...
-
幸に、しんにょうの字の出し方...
-
次頁はなんと読みますか?
-
「裕」「視」など点のありなし...
-
「お客様お一人おひとり」と書...
-
「幸せ」、「辛い」という漢字...
-
「50万円を超える」は50万円以...
-
漢字2題
-
この言葉、「漢字」ありますか。
-
崎の旧字又は俗字のpcでの出し方
-
名前に「之」があるんですがこ...
-
日差しが差す(陽射しが射す)...
-
”ギリギリ” を丁寧に言うには
-
部首がねへんの漢字を探しています
-
「蓬」の正しい書き方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「台」の旧字「臺」の、更に違...
-
「初め」か「始め」どちら?
-
この文字の変換方法を教えて
-
今日は何の日ですか? 語呂合わ...
-
この字は100点満点中何点?
-
「時間がたつ」の「たつ」は、...
-
精神障害者の「働けない」は理...
-
「~していただきまして、あり...
-
次頁はなんと読みますか?
-
「お客様お一人おひとり」と書...
-
”ギリギリ” を丁寧に言うには
-
住所の「字(あざ)」の英文表...
-
「50万円を超える」は50万円以...
-
対策を採る?取る?
-
文章にする時、ひらがなの「と...
-
【鮨】寿司の鰻はひらがなのう...
-
「廣」 について
-
「所要時間は1時間程度です」は...
-
何も考えてないの?
-
0(ゼロ)とO(オー)の書き分け...
おすすめ情報
日本人名と混ざった個人名なので、個人情報の兼ね合いから直接はお出しできないのが残念です
Excelのシートに収められています
また、fujillinさんの方法と併せて漢字であればtrueと出したいとおもい、
[々〇\u3400-\u9FFF\uF900-\uFAFF]|[\uD840-\uD87F][\uDC00-\uDFFF]という範囲を見つけました。
1と2、両方です
ご迷惑おかけしてすみません