• 締切済み

セル内の一部の色と文字列の置換

みなさんこんにちは。 質問ですが、置換したあと、置換した文字のみ青色に変えたいと思っています。 さらにその際に、変換対象外の文字に色の設定がされていた場合には、その色の設定はそのままにしておきたいのです。 たとえば、シート内に ABC123ABCあいう (但し、123だけは、フォントが赤色、他は黒色)というセルがあった場合、 ABC⇒EFG に置換すると、 EFG123EFGあいう (EFGは、青色、123は、フォントが赤色のまま)としたいです。 以上、よろしくお願いします。

みんなの回答

  • aipkt
  • ベストアンサー率0% (0/0)
回答No.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少ない場合はちょっとひねらないといけないので・・・。 もし必要で分からなければコメント下さい。 頑張って下さい。

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.4

お初です 禁止事項よく読んでくださいね 質問が曖昧なので、こんな回答しか出来ません >ただ、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 質問の操作をマクロの記録で記録し、必要なコード以外削除しました 後はご自分で

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.3

(21) 文字列を検索し、その文字だけに書式を設定する http://www.excel7.com/personal/personal1-4.htm

  • dehehe
  • ベストアンサー率27% (6/22)
回答No.2

置換操作自体をVBAでプログラム化し、ボタンか関数化すれば、フォントや文字色の操作はかなり高い自由度で可能と思います。 数値計算でVBAを使うことがありますが、このような見た目を操作するものはコーディングしたことが無いので何となくですが。

  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.1

Excel 2003 なら置換の書式オプションを指定すれば出きると思います。 Excel 97 には、書式を置き換える機能がありません(;_^)

JARO08
質問者

お礼

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

関連するQ&A

  • フォントの色を保持したままセルの一部の置換

    セルの一部を置換し、かつフォントの色を保持するマクロをご存知の方がいましたら教えてください。 例えば、 一つのセルに「123ABC」と入力されていて、「123」は赤、「ABC」は黒とします。ここで「123」を「1234」と置換した場合、「1234ABC」が全て赤となってしまい、困っています。「1234」を赤、「ABC」を黒としたいのです。 膨大な量を置換する必要があるため、できればマクロを使って解決したいと思っています。 どうか宜しくお願いします。

  • セルの中の不要な文字を削除し、色は維持したい

    セルに”あ_い_う”という文字があります。 _はスペースです。 ”あ”の文字の色は黒色 ”い”は赤色 ”う”は黒色 となっています。 このような文字がいくつかのセルに書き込まれているとき、 スペース_を目印として、文字の置換やデータの区切りを使って、 ”い”の文字だけを残しました。 そうすると、”い”は赤色だったのですが、黒色になってしまいました。 赤色のまま残すにはどうすればよいのでしょうか?

  • 左列の文字の色と同じ文字の色にしたいという条件付け書式は可能でしょうか

    左列の文字の色と同じ文字の色にしたいという条件付け書式は可能でしょうか?例えばA1のセルのフォントの色が黒の場合B1のセルのフォントも黒、A1が赤の場合B1も赤のフォント、というように、左の列のフォントの色同じ色のフォントになるよう条件付けしたいのです。可能でしょうか?どのようにいれたらよいか教えていただけませんでしょうか?

  • マクロ(複数文字置換)についての質問です。

    現在、ExcelのA列に置換前の文字、B列に置換後の文字が入っているシート(シート名:"辞書")があります。 そのシートを辞書的役割で使用し別のシートの内容を置換したいと考えています(現在候補が1000文字程度あり、1つずつ置換をすることが難しいです) また、完全一致のみの置換、大文字とから小文字の置換も可能にし、件数も何件存在するかわかりません。 例:ABCをabcに変換したい場合、 ○ABC→abc ×ABCDEF→abcDEF のような感じです。 しかし、1つのセルの中に空白がある場合は置換可能とします。 例:ABC DEF→abc DEF このようなことは可能でしょうか? 何卒よろしくお願いいたします。

  • 条件付きでセルと文字の色を変えたいです。

    隣り合うセルの値を比較して、その条件によってセルと文字の色を変えたいと思ってます。   A B 1 5 3 2 4 8 1行目の場合は左のセルを赤、文字色を黒 2行目の場合は左のセルを青、文字色を黄 と変更させたいのですが、回答宜しくお願いします。

  • Excel セルの一部の置換

    あるセルに 「1,050円(税込)」等いろいろな価格が かかれてあるとします。価格の横には(税込) と全部表記しています。 その(税込)という文字だけを横の数字より 小さいフォントにしたいのですが、 一括で置換・変換する方法とかないでしょうか?

  • excel 色付き文字の置換について

    excel 色付き文字の置換について はじめまして、excel初心者です。 教えて頂きたい内容は、文字の置換方法です。 詳細 セル内の文字列の一部が色付きの時、その色付き文字だけを 他の文字に置き換えたいと思います。 ------------------------- (例 ここがポイントになります。 ------------------------- 例の”ポイント”が赤字だったときの結果として、 別のセルに次のように吐き出すにはどうすればよいでしょうか。 ------------------------- (結果 ここが<font color="#ff0000">ポイント</font>になります。 ------------------------- 結果のように、タグの付いた文字に置き換えたいと思っています。 また、結果は黒字で構いません。 初めての投稿で勝手がわかりませんが、 皆様のお知恵、アドバイを頂けますよう宜しくお願い致します。

  • Excelで置換した文字に色をつけたい

    よろしくお願いします Excelで、「対象シート」のB列を参照して、 「置換リスト」シートの一覧のC列の文字列をE列の文字列に置換するようにしています。 「対象シート」のA列には置換前のデータも入っているので、 「対象シート」のA列、B列それぞれの置換前、置換後の文字列に色をつけたいと思っています。 どの文字がどの文字に置換されたかを比較するためです。 置換後のB列のみ下記式で色をつけられたのですが、 該当文字が含まれる、セル内全部の文字の色が変わってしまいました。 該当文字だけの色を変えるにはどうすればよいでしょうか。 また、「置換リスト」シートのC列にある場は「対象シート」のA列の該当文字のみを赤くする方法も教えていただけないでしょうか。 Sub list置換_Click() Dim list_sheet As Worksheet Dim chg_sheet As Worksheet 'こっちは置換する元の文字と置換文字のリスト Set list_sheet = Worksheets("置換リスト") 'こっちは一括置換したい対象のシート Set chg_sheet = Worksheets("対象シート") cnt = list_sheet.Range("c4").CurrentRegion.Rows.Count For i = 4 To cnt srcword = list_sheet.Cells(i, "C").Value repword = list_sheet.Cells(i, "E").Value With Application.ReplaceFormat.Font .Subscript = False .Color = 255 .TintAndShade = 0 End With Columns("B:B").Replace What:=srcword, Replacement:=repword, LookAt:=xlPart, _ SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ ReplaceFormat:=True Next i End Sub よろしくお願いいたします。

  • エクセルで一つのセルの中の文字列の一部の文字の色の変更

    Excel2002を使っていて一つのセルの中に例えば「ABCDEFG」という文字列があったとします。その中のDの色を緑、Fの色を赤にしたいのですがそれはどうすれば可能なのでしょうか? 色を変えたい文字を選択して「書式」→「セル」→「セルの書式設定」で望む色を選択した場合、一時的に色は変わりますがEnterキーを押したり別のセルをクリックしたりすると色がもとに戻ってしまいます。

  • 印刷時に文字の大きさで色がおかしい

    PX-105ですが 通常フォント10.5で印字してましたが、ほぼ色が黒に成り、他色で指定している場合少し色味が違います。 青ーー>黒、くろーー>黒、赤ーー>ほぼ黒 しかしフォントそのままで文字の大きさを16程度に大きくするとちゃんと色が分かれて印字出来ます。 通常10.5でのサイズで仕事しているので困ってます。 ※OKWAVEより補足:「EPSON社製品」についての質問です。

専門家に質問してみよう