• ベストアンサー

【Excel】文字色を一括変換したい

zap35の回答

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

>*赤文字はセル単位ではなく文字単位です。 ということなら置換ウィザードで文字色を変える方法は使えませんね。 するとどうしてもマクロが必要になります。「マクロはちょっと…」というならあきらめて地道に手作業で行うしかありません。 以下のマクロを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ではテストしていません。

ikataro
質問者

お礼

親切丁寧なご回答ありがとうございます。 感動しました。 No.1さんとの違いはシートを上書きしない点でしょうか。 変換に何時間もかかりますが、ほっとけばいいので助かります。 Excelは内部がWebの<table>構造と同じになっていると聞いていたのでCSSに該当する部分をさっと置換しておしまいかと思っていましたが1文字単位で置換するんですね…

関連するQ&A

  • 【Excel97】コメントの一括変更方法

    セルのあちこちにコメント(非表示)をつけています。 昔作ったExcelファイル(バージョンは同じ97)を修正する為に開いたところ、コメント枠自体の大きさはそのままなのにコメント内の文字がなぜか小さくなっていました。 コメントの内容やセルの書式・数式もバラバラですのでコピーができませんし、1sheet内に60個以上もある為ひとつひとつ手修正していたら膨大な時間が掛かってしまいます。 マクロを使用せずに複数のコメントを一括で修正する方法はありませんか? (マクロを使用しても無理かも知れませんが・・・)

  • EXCEL2007とEXCEL2000の違いについて

    EXCEL2000で勤務時間を集計する一覧表を作成し利用していました。 先日EXCEL2007でその一覧表を利用してみたところ、計算式の入ったセルが「#N/A」と表示されてしまいました。 詳細を以下に記述致しましたが、原因をご存知の方がいればご教示ください。 <EXCEL2000で作成した一覧表についての仕様等> (1)「データ>データの入力規則」で設定したドロップダウンリスト(同一Book内の同一Sheetから値を参照)から勤務開始時間、勤務終了時間を選択させる。 (2)(1)で選択した勤務終了時間を用いてLOOKUP関数を使い、同一Book内の別Sheetから値を参照し、勤務時間を割り出す。 <一覧表をEXCEL2007で利用した際の現象について> 上記「(2)」の段階で計算式セル(LOOKUP関数の入ったセル)に「#N/A」と表示される。 ※情報が足りない等不備がありましたらお申し付け下さい。。

  • 【Excel】自動で転記できますか?

    Excel2003で仕入帳を作っています。 仕入先ごとにコードNo.というものがあり、そのNo.をシート名に しています。仕入先の数が多いので、  シート名『0301』~『0320』→[A]というファイル  シート名『0410』~『0432』→[B]というファイル          ・          ・ といった具合にコードNo.をもとにファイルを分けていて 仕入帳のファイルは全部で8個あります。 (ファイルによってシート数は違いますが、だいたい20枚前後です。) 毎月、コードNo.・会社名・月計・累計の一覧表を作っているのですが これを例えば『一覧表』というシートを別に作って、このシートに 自動で転記するようなことはできるのでしょうか? ちなみに… すべてのシートで、会社名→C2セル 月計→W1セル 累計→Y1セルに 入力されています。 マクロを使用すれば、可能でしょうか? 勉強し始めて間もないのですが、よろしくお願いします。

  • Excel2016で文字列の一括置換を行うVBA

    Excel中級者です。Windows10, Excel2016で、別の「マスタ」シートにある表に従い、「Data」シートにある文字列を一括置換するVBAを教えていただけますと幸いです。マスタ表は2列 100行で1列目に置換前の語、2列目に置換後の語があります。dataシートは1顧客1行で、20列に商品名が入っており、同シートで一括置換を実行したく存じます。どうぞよろしくお願い申し上げます。

  • エクセル文字色の変更

    お世話になります。 数百行にわたる表があります。 その表の中に何色か文字に色をつけています。 今回、その表全体に対して、文字色を黒(標準)に戻したいのですが、赤の字にしている部分だけは、赤のまま残したいのです。(ちなみに、赤、青、緑、茶の4色使ってます) 赤の部分だけよけて範囲指定するには、ちょっとバラバラすぎて面倒だし、いったん全部黒にしてから、再度赤の色をつけるには、数が多くて…。 何か、良い方法はないでしょうか。 ※Excel2000 です。

  • EXCEL2000の使い方

    EXCEL2000で、見積提出一覧表を作っています。 Sheet1には提出一覧を作り、注文No.や品名、納期などを記入していて、採用されたものには"○”不採用のものには"×"をつけています。 Sheet2には採用一覧を作り、1で○をつけたものだけを拾い、コピーして貼り付けるという事をしています。 これだと、手間がかかり、うっかり移し忘れるということも多々ありますので、Sheet1で"○"と記入した場合のみ、自動的にその行を抽出し、Sheet2にまったく同じように反映するようにしたいのです。 いろいろ調べてみたのですが、初心者ということもあり、応用などもききかず、思うようにできません。 教えて頂けないでしょうか? どうか、よろしくお願い致します。

  • Excel2010フィルターの文字を大きく表示法は

    Excel2010で行の文字を抽出する時フィルターから列に入っている文字を選択する場合 ディスプレイは24”を使用しているのでデーターはそれなりに調整できるのですが 出て来る一覧表の文字が同じで小さいので私としては小さすぎるので探すのに見えにくいのです、 テキストフィルターではそれなりに大変なので一覧表の大きさを(変更=文字を大きく) する方法は有りませんでしょうか? 以前にも問い合わせたのですが ->読めるのだから   ー>小さくは無い等の回答で 私にとっては読みにくい=探しにくい=時間がかかる のでよろしくお願いいたします

  • Excel:文字列の自動操作

    Excel2003です。 [A3]セルに何らかの文字列を入力させると、[B3]セルには[=LEFTB(A3,12)]という数式を設定し、自動入力文字数を全角6文字以内で表示させています。 さらに[D3]セルには、 [=SUBSTITUTE(SUBSTITUTE(PHONETIC(A3),"(株)",""),"(有)","")] ※式中の(株)(有)は記号 という数式を設定し、[A3]セルの文字列のフリガナを半角カタカナで自動表示させています。 そこで質問です。 1.[A3]セルへの入力が手入力(直接入力)の場合はいいのですが、ここへの入力が他のアプリやブラウザ等の一覧表などからのコピー&ペーストの場合、[D3]セルには半角カタカナではなく[A3]セルと同じ内容になってしまいます。 そういう場合、可能であれば自動的に半角カタカナで表示が出るようにしたいのですが、無理ですよね? もし、無理ならコピペでの入力時に限り、[D3]を空白にする、といったことは出来ますか? 2.[D3]セルへの自動表示文字数を半角文字で16文字以内にしたいのですが、どうすれば良いでしょうか? 出来なければここもまた空白にする、といったことも出来ないでしょうか? よろしくお願い致します。

  • フォルダー下のExcelファイル中文字一発置換

    教えて下さい。 あるフォルダー下にあるExcelファイルの全シート、全セルを 対象に特定の文字(漢字)の置換を行いたいのですが何か良い方法は ありませんでしょうか? ファイル数が膨大で一つ一つファイルを開けて 置換をするのにも大変な労力が掛かってしまいますので フォルダー単位で実行したいと思っています。 宜しくお願い致します。

  • EXCEL2000で。

    EXCEL2000で、セルではなくてテキストボックスの中の文字を、検索、置換する方法はありますか? ドキュメントのメンテナンスで、同じ修正を全テキストボックスにする事になったんですが、テキストボックスの数が多すぎて1つずつ直す気になれません。 ご存知の方がいらっしゃいましたら、教えて頂きたいです。