• 締切済み
  • すぐに回答を!

置換について

エクセルで、重要な語句に対して部分的に色付けされた文章が記載されたセルがあるとします。 そのセル内の文字列を、ctrl+FやReplace関数を使って置換をかけた場合、色付けした文字列がすべて黒に変わってしまいます。 置換対象文字列以外は、置換前の状態のまましたいのですが、どなたかその方法についてご存知の方いらっしゃらないでしょうか? ぜひ、ご教授願います。

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数116
  • ありがとう数0

みんなの回答

  • 回答No.2
  • Wendy02
  • ベストアンサー率57% (3570/6232)

こんばんは。 Wordのように、色を後から置換によって出来るとよいのですが。もしかしたら、ExcelのVersion によっては、出来るかもしれませんね。 今の段階では、重要な語句のみに色を付けるというマクロだったら、出来ます。 Visual Basic Editor 画面を出したら、挿入から、標準モジュールをクリックして、そこに以下のものを貼り付けます。一応、私の使う代表的な色番号を書いておきました。本当は、ユーザーフォームのテキストボックスに、設定の部分を入れられるとよいのですが、ちょっと難しいかもしれません。 例: その使い方はむずかしい。    ↓ その使い方は難しい。 難しいに、青の色をつけたい場合に、 設定のところの kensaku に 「むずかしい」 chikan に 「難しい」 といれ、 色番号を以下から、 iro = 5 と入れます。 もし、すでに色が黒になってしまったものは、 kensaku と chikan のところは、同じ言葉を入れてください。 '------------------------------------------------ '<標準モジュール> '黒(1),白(2),赤(3),黄緑(4),青(5),黄色(6),ピンク(7), '水色 (8), 茶(9), 緑(10), 藍(11), 黄土色(12), 紫(13), 濃緑(14) '灰色 (15), 濃い灰色(16),淡い水色(34),ゴールド(44),オレンジ(45), '黄緑 (35) Sub ReplaceColor()  Dim c As Range, myFadd As String  Dim i As Long '設定 '==============================================  '検索語  Const kensaku As String = "むずかしい"  '置換語  Const chikan As String = "難しい"  '色番号  Const Iro As Integer = 5 '==============================================  Set c = Cells.Find(What:=kensaku, _            After:=ActiveCell, _            LookIn:=xlFormulas, _            LookAt:=xlPart, _            SearchOrder:=xlByRows, _            SearchDirection:=xlNext, _            MatchCase:=False)  If Not c Is Nothing Then   myFadd = c.Address   Do    Set c = Cells.FindNext(c)        c.Replace What:=kensaku, _    Replacement:=chikan, _    LookAt:=xlPart, _    SearchOrder:=xlByRows, _    MatchCase:=False    i = InStr(c.Value, chikan)    c.Characters(i, Len(chikan)).Font.ColorIndex = Iro   Loop Until c Is Nothing Or myFadd = c.Address  End If End Sub '------------------------------------------------

共感・感謝の気持ちを伝えよう!

  • 回答No.1
  • imogasi
  • ベストアンサー率27% (4635/16582)

事実が確認できませんでした。補足をお願いします。 A1セルに 「東京は秋が暑い」 といれ、全体文字ををライトブルーにしました。 「秋が」の2文字を赤色に変えました。 「秋が」を編集ー置換で「夏が」に置換しました。 「夏が」はライトブルーになり、セル全体もライトブルーのままでした。 こういうケースとどこが違うのでしょうか。もちろんプログラムでReplace関数を使っていません。

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • VBA 置換文字がみつからない時

    お世話になります。 VBAの文字列の置換で教えてください。 replaceを使用したときに、置換対象の文字がなかったら、 「元の値をそのまま返す」という形なのですが、 置換対象がなかったときは、その旨わかるようにしたいのですが、 方法あるでしょうか? ※毎回replaceの前でfind関数であるかないか、調べないと いけないのでしょうか? 何卒宜しくお願いします。

  • マクロで書式ごと置換

    マクロで書式ごと置換 いつもお世話になります。 今回は標記の件についてお伺いしたく質問を投稿させていただきました。 現在、[D5:CN93]に配置している文字列データを記号に置換する作業をおこなっています。置換マクロに関してはreplaceを使用し、今のところ問題なく動いています。作業工程としては、上記の範囲にあるデータの一覧を作成し、どのデータをどのような記号に置き換えたいかの一覧を附します。 例)  [A1](置換したい記号)   [B1](置換したい文字列)      ○          イチゴ      ◆          バナナ    [D5:CN93]置換対象の文字列例    イチゴ,バナナ マクロでは置換したい文字列、置換したい記号の値をreplace関数に与えて、上記の範囲にあるセル1つ1つに置換をかけていく、というものです。 今までは、文字列の書式は問題ではなかったのですが(置換後に一括変換)、上のほうから「イチゴを赤い○、バナナを黄色い◆のように、色をつけられないか」といわれました。 置換ウィザードを試してみたのですが、セル全体の文字列の色が変わってしまいうまくいきませんでした。 またreplaceで色情報も置換する方法もわかりません(無いのかもしれませんが)・・・ そこで「色情報を持たせたまま、文字列の一部を置換」する方法を教えてください。 これまでのデータを使用したいので、データは以下のように並んでいます。  [A1](置換したい記号)   [B1](置換したい文字列)     赤色の○         イチゴ     黄色の◆         バナナ    [D5:CN93]置換対象の文字列   イチゴ,バナナ

  • ヒットする初回のみ置換する方法

    あいうえおかきくけこあいうえおあいうえお という文字列があった時、 初回の「あいうえお」のみ空に置換して かきくけこあいうえおあいうえお としたいのですが、str_replace()だと全部置換されてしまいますし、 preg_replace()やmb_ereg_replace()ではうまく置換されません。 対象とする文字列は、実際はHTMLタグやマルチバイトが混じっています。 置換するべき文字列は、全く同様のものが対象文字列内にも必ず含まれています。 preg_replace()やmb_ereg_replace()でも可能なのかもしれませんが、 どうやればいいのか分かりませんでした。 どなたかご教示下さい。

    • ベストアンサー
    • PHP
  • テーブルを使った置換

    Access2002 Accessでクエリ実行時に特定の文字列を置換したいと思っています。 今までは置換する文字列が1つだけだったので、replace関数を使って直接置換する文字列を書いていたのですが、置換する文字列が今後増えてきそうなのでテーブルで管理したいと思っています。 置換用テーブル 元 ,置換後 000022,002078 000218,002403 000447,002703 クエリは単純な選択クエリなのですが、上記のようなテーブルを使ってクエリ実行時に文字を置換する方法がわかりません。 よろしくお願いします。

  • 日付の年のみ置換

    エクセルシートに 2016/12/28 など 2015/12/28 に置換したいです。 要するに年度のみ変えたいです。 でも一つのセルに 「今日は2016/12/28です。」 のように、日付以外の文字も入ってる時は対象外としたいです。 なので画像の様に ******************************************* 検索する文字列→2016/??/?? 検索後の文字列→2015/??/?? セル内容が完全に同一であるものを検索する ******************************************* という条件にしました。 「?」はワイルドカードで、一文字と言う意味として使っています。 この条件だと 「2016/??/??」は、2016/12/28に該当するので置換対象となりますが 置換後に 2015/??/?? になってしまいます。 「2016/」 から 「2015/」は別の条件もヒットしてしまうので考えてません。 ちなみに ******************************************* 検索する文字列→2016/##/## 検索後の文字列→2015/##/## セル内容が完全に同一であるものを検索する ******************************************* にした場合は、検索にも引っかかりませんでした。 「#」はワイルドカードで、数値と言う意味だと思っていました。

  • エクセルVBAのReplaceメソッドについて

    エクセル表内のある文字列をVBAのReplaceメソッドを使用して、別の文字列に一括変換したいと考えてます。引数で指定する『置換後の文字列』として該当セルの一つ上のセル(A2に対象文字列がある場合は、A1の値)を指定したいのですが、どのように指定したらよいのか分かりません。Replaceメソッドで置換後の文字列として一つ上のセルの値を指定する事は可能でしょうか。宜しくお願いします。

  • 【エクセル】文字列置換について

    エクセルでの文字列置換についてお教えください。 一部の文字列が含まれていたら、置換するという処理は可能ですか? 例えば、 ”ああああいいいい”  ”ああああうううう” ”ああああええええ” セルに、上記の文字列が、あったとして、 ”ああああ”が、含まれていたら、 すべてのセルを、”おおおお” に、置き換える(差し替える)という処理を想定しています。 よろしくお願いいたします。

  • エクセルで*を文字として置換したい

    エクセルでアスタリスク(*)を文字として、置換したいのですが、 ワイルドカードとして認識してしまい、うまくできません。 CTRL+Fで使って、置換する文字列を、 "*" や '*'としましたが、だめでした。 どうすればいいのでしょうか。 よろしくおねがいします。

  • excelで置換をしたいんですが

    excelで置換をしたいんですが、SUBSTITUTE関数を使うとワイルドカードが使えずうまくいきません たとえば、 和歌山県産オレンジ 3個 サンキスト オレンジ 入荷済み 2008年オレンジ 愛知産いちご 53個 ほのか いちご 入荷済み 2011年生産 いちご を、置換で全ての文字をオレンジが入力されたセルはオレンジのみ、 いちごが入力されたセルはいちごだけにすることはできますか? ctrl+Hで、検索する文字列に*オレンジ*と入力して実行してもうまくいかないです。。。 

  • VBA XML の置換方法

    XMLの特定の文字列を書き変えたいのですが その文字の場所を特定して Replace (文字列、対象文字列、置換文字列、検索開始位置)で置換をすると 検索開始位置の前の文字が消えてしまいます 検索開始位置まえの文字はそのままにして、検索開始位置から後の文字列のみを置換する方法はないでしょうか

    • 締切済み
    • XML