- ベストアンサー
EXCELで日本語の記号を特殊文字に一括変換
エクセルで、MSゴシックで書かれた記号(◆)を(エクセルのツールバーにある「記号と特殊文字」)「Wingdings」の中にある「◆」に置換したいのですが、同じセルのひとつの文章として「◆日本語の文章(MSゴシック)・・・」となっているため、一括変換がうまく行きません。ひとつの文章のなかで、特定の文字だけ「置換」機能を使うことはできないのでしょうか? どなたか詳しい方がいらっしゃればよろしくご教示ください。よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エクセルの置換機能で置換した文字列があるセルのフォントを変更することは可能ですが、セル全体にそのフォントが適用されます。 「Wingdings」の中にある「◆」は文字コードが「117」でMS Pゴシックにすると「u」と同じ文字コードになります。ですから手作業で行うなら「◆」を「u」に置換して、その文字だけフォントを「Wingdings」に変更するしかありません。 もしこの操作を自動的に行うならマクロが必要です。マクロは最後に掲載しますが、この要望は意味があることですか? マクロで置き換えたとしてもワークシート画面では希望通りに見えても、プリンタによっては印刷すると「u」で印刷されますよ。 MSゴシックの「◆」とWingdingsの「u(◆)」を見比べましたが、それほど違うとは思えませんでした。あまり意味があるとは思えませんが… どうしてもと言われるなら以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。シート画面に戻り、マクロの実行はALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。 Sub Macro1() Dim r As Range Dim ptr As Integer For Each r In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, 3) With r ptr = InStr(r.Value, "◆") Do While ptr > 0 If .Characters(Start:=ptr, Length:=1).Font.Name = "MS ゴシック" Then .Characters(Start:=ptr, Length:=1).Text = "u" .Characters(Start:=ptr, Length:=1).Font.Name = "Wingdings" End If ptr = InStr(r.Value, "◆") Loop End With Next r End Sub
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 ExcelのVersion にもよりますが、 Excel 2003 なら、 すでに、MSゴシックの(◆)が入っているはすでずから、 編集-置換- 検索値 ◆ 置換値 u (書式-フォント-Wingdings) に換えればよいのではありませんか? それが出来ないパーションでしたら、ひとつずつ、コピーで貼り付けていくか、u に変えてから、書式をコピーしていくことになるでしょうね。#2さんのマクロという手もあるけれども……。
お礼
ありがとうございました! 同じセルのなかに日本語の文章が入っているため、置換機能がうまく作用しませんでした・・・(涙)。
- imogasi
- ベストアンサー率27% (4737/17069)
質問は何を言っているか判っていないかも知れない。 あるフォントで文字・記号に見えているものも、根底に文字コード(体系)があります。 外国のものは別として、ほとんどの文字で、ほとんどのフォントで、は (A)見た目は違うものの、同じ文字記号に割り当てていると思う(異字体程度はある)。 (B)違う文字や記号に割り当てて、違う風に見えているフォントは少ないと思います。 (B)はフォントによっては、現実に無いとはいえないでしょうが。 ーー その際、そもそも置換というのは (A)文字コード(x)-->文字コード(y) を行うもので、 (B)文字コード+フォント種類ーー>文字コード+フォント種類 という機能を持ったソフトや機能はほとんど無いと思う。 あるフォントで◆=文字コード(X)--->別のフォントで◆の文字コード(y)の対応がわかるなら、その置換を考えることになる。 その際Xの◆は良いとして、置換後の指定yはあるフォントの中での どういう文字・記号になるかを指定することになる。もし文字として存在しないとなると、置換後の指定に困る。置換後を文字コードで指定させてくれるソフトがあればよいが、通常はその機能は無いと思うが・ ーー 結論は、エクセルやワードでは難しいのでは。特にエクセルはそういうことを力点を置くソフトではない。何でもエクセル族の発想。 ーー 以上言っていることが、ピントはずれであれば無視してください。
お礼
分かりやすいご説明、どうもありがとうございます! 結局マクロを使わせていただきました・・・。