- ベストアンサー
【Excel】文字色を一括変換したい
Excel2000(Win-XP)使用者です。 エクセルで作った一覧表があります。重要な言葉を赤くしているのですが最近、この赤を茶色に変更することになりました。 修正箇所が少なければいいのですが文字数とセル数が膨大なため、普通にやったらまる一日かかりそうです。 何かいい方法はないものでしょうか。 *赤文字はセル単位ではなく文字単位です。 *赤文字は太文字になっているものがほとんどです。 *シートの数は少ないのでシート単位での処理でいいです。 *友人がExcel2003を持っているので一時的にそちらを使うこともできます。 お詳しい方、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>*赤文字はセル単位ではなく文字単位です。 ということなら置換ウィザードで文字色を変える方法は使えませんね。 するとどうしてもマクロが必要になります。「マクロはちょっと…」というならあきらめて地道に手作業で行うしかありません。 以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。 Sub Macro2() Dim r As Range Dim ptr As Integer Const RedColor As Integer = 3 '赤色 Const BrownColor As Integer = 53 '茶色 Application.ScreenUpdating = False ActiveSheet.Copy after:=ActiveSheet For Each r In Cells.SpecialCells(xlCellTypeConstants, 3) For ptr = 1 To Len(r.Value) If r.Characters(Start:=ptr, Length:=1).Font.ColorIndex = RedColor Then r.Characters(Start:=ptr, Length:=1).Font.ColorIndex = BrownColor End If Next ptr Next r Application.ScreenUpdating = True End Sub ただしこの処理は一文字ずつ色を調べなければならないので、処理時間はとんでもなくかかるかもしれませんがご承知おきください。途中で心配になったらESCキーを何回か押下してください。マクロの実行を止めることができます なおこのマクロは元のシートをコピーしてから処理するので元のシートは残るようにしています。2003では動作確認していますが2000ではテストしていません。
その他の回答 (2)
- rukuku
- ベストアンサー率42% (401/933)
はじめまして >赤を茶色に変更 エクセルのみで行うには、mitarashiさんの回答(#1)にある1案か2案かと思います。 ちょっと回り道をして、WORD2000を使えば可能です。 手順としては、 1.EXCELからWORDにコピー&ペースト 2.WORDで色を変換(WORD2000には色を置換する機能があります) 3.WORDからEXCEにLコピー&ペースト となります。 ただし、2回のコピー&ペーストが思い通りに行ってくれるかが最大の難関です。
お礼
ありがとうございます。 ExcelをWordに貼り付けて文字色変換… 速い!速すぎる!! しかし再びExcelに貼り付けてもセルの縦横がめちゃめちゃ… 画像も貼り付けてあるため厄介なことに。 でも何か工夫すれば何とかなるのでは? Wordはどしろうとなのでちょっと研究してみます。
- mitarashi
- ベストアンサー率59% (574/965)
1案 ツール/オプション/色で標準の色の赤→茶色に変更する。 たぶん、お気に召さないと思うので、 2案 マクロでやる(アクティブシートに対する処理です) Sub test() Dim myCell As Range Dim i As Long For Each myCell In ActiveSheet.UsedRange For i = 1 To myCell.Characters.Count If myCell.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 Then myCell.Characters(Start:=i, Length:=1).Font.ColorIndex = 9 End If Next i Next myCell End Sub
お礼
できました!ありがとうございます。 これはすごい。プログラムってすごいですねえ。 時間がかかるのが難点ですが・・
お礼
親切丁寧なご回答ありがとうございます。 感動しました。 No.1さんとの違いはシートを上書きしない点でしょうか。 変換に何時間もかかりますが、ほっとけばいいので助かります。 Excelは内部がWebの<table>構造と同じになっていると聞いていたのでCSSに該当する部分をさっと置換しておしまいかと思っていましたが1文字単位で置換するんですね…