dポイントプレゼントキャンペーン実施中!

シートが2枚あって、sheet(1)の内容を変更するとsheet(2)の内容を検索して置換するマクロを作っています。
sheet(1)で変更された文字を検出して(検出は文字色で判断しています。)sheet(2)にある文字を置換した後。文字色を変更しようとしています。

Sheet(2)の文字は例えばこのように並んでいます。
各文字はsheet(1)のA,B列の内容を合せたものやユーザーが任意に入れた文字を含みます。
A1 上側 右側
A2 下側 左側
A3 両側
A1:A3を選択して、A1の「上側」を「上面」に置換した後、文字色変更したいのです。
ユーザーの入力値が含まれるため、書式や文字列のコピペは出来ません。

なお、文字数は一定では有りません。また、この範囲の検索が終了すると次ぎの範囲を選択し同様の処理を行っています。

現在使っているのはマクロの記録を行ったものを使っています。
a="上側"
b = "上面"
Selection.Find(What:=a・・・・・・)

ActiveCell.Replace What:=a, Replacement:=b, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

この中でReplaceFormatで書式設定を行っているのは判るのですが、ここをどの様にするば希望の文字色(例えば赤)にする事が出来るのでしょうか?
また、その方法だとA1セル全ての書式が変わってしまいます。欲を言えば置換後の”上面”だけを変更したいのですがそれは可能でしょうか。
宜しくお願い致します。

A 回答 (1件)

質問がよく分からん


結局、置換後の文字列に色を付けたいだけ?

置換までは出来るんだよね

じゃあ、文字列の色変更のみ

Sub Macro1()
Dim a As String
Dim i As Integer, ii As Integer
b = "上面"
i = InStr([A1], b)
ii = Len(b)
[A1].Characters(Start:=i, Length:=ii).Font.ColorIndex = 3
End Sub

A1 上面 右側
上面の色を赤色にする

アレンジは自分でしてね
    • good
    • 0
この回答へのお礼

分かりにくい説明にもかかわらずご回答頂きありがとうございます。
仰る通り置換後の文字列に色を付けたかったのです。

なるほどLen関数で文字数をカウントしてやる訳ですね。
おかげ様で解決できました。
実はこれ以外にも罫線の引き方で悩んでいましたが、これの方法を使って解決する事が出来ました。
大変ありがとうございました。

お礼日時:2009/02/11 16:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!