Excel2000(Win-XP)使用者です。
エクセルで作った一覧表があります。重要な言葉を赤くしているのですが最近、この赤を茶色に変更することになりました。
修正箇所が少なければいいのですが文字数とセル数が膨大なため、普通にやったらまる一日かかりそうです。
何かいい方法はないものでしょうか。
*赤文字はセル単位ではなく文字単位です。
*赤文字は太文字になっているものがほとんどです。
*シートの数は少ないのでシート単位での処理でいいです。
*友人がExcel2003を持っているので一時的にそちらを使うこともできます。
お詳しい方、よろしくお願いいたします。
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ではテストしていません。
親切丁寧なご回答ありがとうございます。
感動しました。
No.1さんとの違いはシートを上書きしない点でしょうか。
変換に何時間もかかりますが、ほっとけばいいので助かります。
Excelは内部がWebの<table>構造と同じになっていると聞いていたのでCSSに該当する部分をさっと置換しておしまいかと思っていましたが1文字単位で置換するんですね…
No.3
- 回答日時:
はじめまして
>赤を茶色に変更
エクセルのみで行うには、mitarashiさんの回答(#1)にある1案か2案かと思います。
ちょっと回り道をして、WORD2000を使えば可能です。
手順としては、
1.EXCELからWORDにコピー&ペースト
2.WORDで色を変換(WORD2000には色を置換する機能があります)
3.WORDからEXCEにLコピー&ペースト
となります。
ただし、2回のコピー&ペーストが思い通りに行ってくれるかが最大の難関です。
ありがとうございます。
ExcelをWordに貼り付けて文字色変換…
速い!速すぎる!!
しかし再びExcelに貼り付けてもセルの縦横がめちゃめちゃ…
画像も貼り付けてあるため厄介なことに。
でも何か工夫すれば何とかなるのでは?
Wordはどしろうとなのでちょっと研究してみます。
No.1
- 回答日時:
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) Excelの条件付き書式についての質問です。 2 2022/09/08 01:25
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- Excel(エクセル) Excelで校閲をする方法はあるでしょうか(取扱説明書への掲載禁止用語の確認) 3 2022/06/11 22:51
- Excel(エクセル) 関数EXACT(文字列,文字列)とexcelVBA 3 2022/04/14 15:07
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) Excel VBA 書式変更で困ってます。 オートフィルターの日付フィルターを用いて データの絞り込 2 2022/07/26 22:16
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelで数字を入れたら対応する...
-
セルの一部分だけを太字にする方法
-
長い時間かかるマクロが実行中...
-
エクセルで特定の行だけ行削除...
-
エクセルファイルを開いた回数...
-
Excelのシート上のShapeにイベ...
-
フォルダ内にある全ファイルの...
-
エクセル マクロ 一定時間おき...
-
エクセルで複数のシートのクリ...
-
【エクセル】「実行時エラー’10...
-
【エクセル】フリーワード検索...
-
EXCELのダイアログシートって、...
-
エクセルVBA プログレスバー表...
-
前月分を次月シートに繰越でき...
-
Excelの操作の履歴を残す方法
-
エクセル シート内の一番下のセ...
-
【マクロ】A列の納期月【1、2...
-
エクセル:セル内の文字列の最...
-
EXCEL2002で、OnTime メソッド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBAでのWorksheet_Change...
-
Excelで数字を入れたら対応する...
-
エクセルで複数のシートのクリ...
-
エクセルファイルを開いた回数...
-
Excelのシート上のShapeにイベ...
-
エクセルで特定の行だけ行削除...
-
長い時間かかるマクロが実行中...
-
エクセル シート内の一番下のセ...
-
【エクセル】フリーワード検索...
-
Excelでセル内の文字をファイル...
-
【エクセル】「実行時エラー’10...
-
シートではなくBOOK間で重複し...
-
フォルダ内にある全ファイルの...
-
EXCELのダイアログシートって、...
-
エクセル:セル内の文字列の最...
-
自分の専門分野の仕事。初見で...
-
セルの一部分だけを太字にする方法
-
エクセルで○をつけるマクロ設定
-
エクセル マクロ 一定時間おき...
-
Excelにて、同じ画像を複数のセ...
おすすめ情報