• ベストアンサー

Excelの置換で書式が変わる現象の回避策

下記のようなマクロで複数の置換をしています。 Cells.Replace What:="★", Replacement:="☆", MatchCase:=True Cells.Replace What:="◆", Replacement:="◇", MatchCase:=True Cells.Replace What:="■", Replacement:="□", MatchCase:=True ・ ・ ・ セル内で改行して文字サイズや色を変えている箇所では置換後1行目の書式に変わってしまいます。 文字だけを置換をしたいのですがこれを回避する方法はあるのでしょうか教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

一括の置換では,文字ごとの修飾を保持できません。 たとえば次のように,丁寧に文字ごと書き換えていかなければいけません。 sub macro1()  dim a,b,i  dim h as range  a = array("★","●","■")  b = array("☆","○","□")  for i = 0 to ubound(a)  set h = cells.find(what:=a(i), lookat:=xlpart)  do until h is nothing   h.characters(instr(1, h.value,a(i)), 1).text = b(i)   set h = cells.findnext(h)  loop  next i end sub

THE-TEN
質問者

お礼

まさかこんなに面倒なソースになるとは思いませんでしたが、大変助かりました。 ありがとうございます。

関連するQ&A