アプリ版:「スタンプのみでお礼する」機能のリリースについて

みなさんこんにちは。
質問ですが、置換したあと、置換した文字のみ青色に変えたいと思っています。
さらにその際に、変換対象外の文字に色の設定がされていた場合には、その色の設定はそのままにしておきたいのです。

たとえば、シート内に
ABC123ABCあいう
(但し、123だけは、フォントが赤色、他は黒色)というセルがあった場合、
ABC⇒EFG に置換すると、
EFG123EFGあいう
(EFGは、青色、123は、フォントが赤色のまま)としたいです。

以上、よろしくお願いします。

A 回答 (5件)

初めましてー!


VB暦2週間の素人ですが、勉強ついでに作ったので解決してなければ回答・・・。
とりあえずセルを移動させずにA1だけ対応させますのでセルの移動などはお願いします。
(複数のセルを置換する場合に処理速度がかなりかかり、無駄が多いと思いますが・・・)

※A1にABC123ABCあいう と入力し、123を赤にしておいてください。
'-------------------------------------------------------------
Sub 置換()

Dim a, b As Long
Dim FontSave(500, 1) As String

Range("A1").Activate

For a = 1 To Len(ActiveCell)

jamp:
If Asc(Mid(ActiveCell, a, Len("ABC"))) = Asc("ABC") Then

With ActiveCell.Characters(Start:=a, Length:=1).Font

For b = 1 To Len("ABC")
FontSave(a, 1) = 5
a = a + 1
Next

GoTo jamp:
End With

Else
With ActiveCell.Characters(Start:=a, Length:=1).Font

If .ColorIndex > 1 Then
FontSave(a, 1) = .ColorIndex
Else
FontSave(a, 1) = 1
End If

End With
End If
Next


ActiveCell.Replace What:="ABC", Replacement:="EFG", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

For a = 1 To Len(ActiveCell)
With ActiveCell.Characters(Start:=a, Length:=1).Font

.ColorIndex = FontSave(a, 1)

End With
Next

End Sub
'------------------------------------------------------------


処理の流れとしては
(1) フォントを指定して一旦保存しておく
(2) 置換
(3) 保存しておいたフォントの書き込み

置換する文字列が置換前の文字列より多いor少ない場合はちょっとひねらないといけないので・・・。
もし必要で分からなければコメント下さい。

頑張って下さい。
    • good
    • 0

お初です


禁止事項よく読んでくださいね

質問が曖昧なので、こんな回答しか出来ません
>ただ、VBAで行いたいです。(EXCEL2000)
質問に書いておくべきですね


Sub Macro2()
'
' Macro2 Macro
' マクロ記録日 : 2009/1/8 ユーザー名 :
'

'
Cells.Replace What:="abc", Replacement:="efg"
With ActiveCell.Characters(Start:=1, Length:=3).Font
.ColorIndex = 5
End With
With ActiveCell.Characters(Start:=4, Length:=3).Font
.ColorIndex = 3
End With
With ActiveCell.Characters(Start:=7, Length:=3).Font
.ColorIndex = 5
End With
With ActiveCell.Characters(Start:=10, Length:=3).Font
.ColorIndex = xlAutomatic
End With
End Sub

質問の操作をマクロの記録で記録し、必要なコード以外削除しました

後はご自分で
    • good
    • 0

(21) 文字列を検索し、その文字だけに書式を設定する


http://www.excel7.com/personal/personal1-4.htm
    • good
    • 0

置換操作自体をVBAでプログラム化し、ボタンか関数化すれば、フォントや文字色の操作はかなり高い自由度で可能と思います。


数値計算でVBAを使うことがありますが、このような見た目を操作するものはコーディングしたことが無いので何となくですが。
    • good
    • 0

Excel 2003 なら置換の書式オプションを指定すれば出きると思います。


Excel 97 には、書式を置き換える機能がありません(;_^)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
ただ、VBAで行いたいです。(EXCEL2000)
置換したい文字が多くあるので。

お礼日時:2009/01/08 01:53

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