- ベストアンサー
日本語→中国語の複数単語の一括置換(エクセル)
エクセルのマクロを活用して下記のことを考えています。 エクセルで複数単語の一括置換は過去の質問でありまして活用できそうだったのですが、置換後の文字が中国語だとマクロに中国語を記載すると文字化け(?マーク)になり、エラーが出ます。 日本語→中国語の複数単語の一括置換(エクセル)ができる方法はないのでしょうか? やりたいことは、簡単に以下のようなことです。 エクセル全てのシートが対象で、事前に下記の置換内容を準備します。 そして一括置換がエクセル内でしたいです。 China1→中国語1 China2→中国語2 China3→中国語3 China4→中国語4 宜しくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBAコードに中国文字は入らないようですが、 Excelのセルになら中国文字が入ります。 (形式を選択して貼り付け → Unicodeテキスト) なので、置き換えがセル単位であれば、ですが 日本語/中国語の対応表を置き換え対象のブックとは別のブックに持てば VBAでも処理できます。 文字列の一部分を置き換えるのには使えませんが。 (^^;
その他の回答 (1)
- xls88
- ベストアンサー率56% (669/1189)
下記のようなことでどうでしょうか。 Cells.Replace What:=Range("A1").Value, Replacement:=Range("B1").Value 中国語というかUnicode文字が化けます。 VBEがUnicodeに対応していません。 コード内でUnicode文字を扱うならChrW関数を使えば良いと思います。 下記で、16進の文字コードに対応する文字を返します。 ChrW(&HFA4F) 例えば下記で、祐を、しめす偏で一文字の「示右」に置換します。 ActiveCell.Replace What:="祐", Replacement:=ChrW(&HFA4F)
お礼
丁寧にご解説下さりありがとうございます。 すみません、本当に申し訳ないのですが、初心者で上記の内容が理解できません。 まず、日中両方をマクロでは処理できないということなのでしょうか? 下記の内容はA1をB1に置換するというマクロで、その後からの説明がよく理解できません。 Cells.Replace What:=Range("A1").Value, Replacement:=Range("B1").Value 例えば、 MJ→馬軍 CLB→崔立波 と変換する場合どのようにすればいいのでしょうか(右側は中国語簡体字です)?
お礼
ありがとうございます! 何かヒントが見えてきたような気がします。 私の理解ですが以下のように理解していますが正しいでしょうか? Sheet1にA列に置換前の単語 Sheet1にB列に置換後の単語 それで、マクロにSheet1の日本語/中国語の対応表を読みに行かせて、そのファイル内にあるSheet1以外のすべてのSheet(Sheet名はいろいろ)の対象の単語を置換する もし、間違えていたら教えて頂ければ幸いです。