
マクロ実行で以下のように一括色変更できないでしょうか?
1文字での変更は下記コードでおこなうことができましたが、複数であると初心者でとても分かりません。
※S25とF30.、F5.は加工進行でいろいろ数値のみ変えます。
※M100、M101は全体の4文字は変わりませんが数字は増えていき、ランダムにこの先の加工進行上でてきます。
※M03、M00は3文字で変わりません。
現在以下のコードで1文字ずつならできます。
Sub test01()
Dim cl As Range
For Each cl In Range("a1:a10")
r = InStr(cl, "M00")
If r <> 0 Then
cl.Characters(r, 3).Font.ColorIndex = 3
End If
Next
End Sub

No.5ベストアンサー
- 回答日時:
No.2・3・4です!
親の仇のように顔をだします。
No.4のお礼欄に
>D列、E列、F列、G列まで色を配置して
とありましたので・・・
列で色を決めるのではなく、前回のC列データのフォントを好みの色にしておいて
その文字はその色に表示する!という考え方でのコードにしてみました。
※ 今回は複数回出現してもC列にあるデータはすべてをC列データ色にするようにしています。
Sub Sample2()
Dim i As Long, k As Long, n As Long, str As String
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
For k = 1 To Cells(Rows.Count, "C").End(xlUp).Row
For n = 1 To Len(Cells(i, "A"))
str = Cells(k, "C")
If Mid(Cells(i, "A"), n, Len(str)) = str Then
Cells(i, "A").Characters(Start:=n, Length:=Len(str)).Font.Color = Cells(k, "C").Font.Color
End If
Next n
Next k
Next i
End Su
こんなんではどうでしょうか?m(_ _)m
No.4
- 回答日時:
No.2・3です!
たびたびごめんなさい。
前回の方法はA列セルにC列データが1回しか出現しない!という前提ですので、
複数回出現し、すべてに色を付けたい場合は
A列の文字を舐めるように検索していく必要があると思います。
※ 余計なお世話かもしれませんが、投稿後に気になったもので・・・
どうも失礼しました。m(_ _)m
丁寧な解答ありがとうございます。
このコードも大変役に立つと感じました。
さらにD列、E列、F列、G列まで色を配置して列による
文字の色管理ができれば完璧です。
初心者ですので前回のコードも含めて最後までのコードが
知りたいです。
No.2
- 回答日時:
こんにちは!
一例です。
↓の画像のように別列(今回はC列)に色をつけたいデータを入力しておきます(空白セルがないように!)
データはA列の1行目からあるとします。
Sub Sample1()
Dim i As Long, k As Long
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
For k = 1 To Cells(Rows.Count, "C").End(xlUp).Row
If InStr(Cells(i, "A"), Cells(k, "C")) > 0 Then
Cells(i, "A").Characters(Start:=InStr(Cells(i, "A"), Cells(k, "C")), Length:=Len(Cells(k, "C"))). _
Font.ColorIndex = 3
End If
Next k
Next i
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.1
- 回答日時:
S25とF30.とF5.において、数字部分の桁数が変化しないのでしたら、
Sub test01()
Dim cl As Range
For Each cl In Range("a1:a10")
r = InStr(cl, "M00")
If r <> 0 Then
cl.Characters(r, 3).Font.ColorIndex = 3
End If
r = InStr(cl, "M03")
If r <> 0 Then
cl.Characters(r, 3).Font.ColorIndex = 4
End If
r = InStr(cl, "M")
If r <> 0 And (cl Like "*M[0-9][0-9][0-9]*") Then
cl.Characters(r, 4).Font.ColorIndex = 5
End If
r = InStr(cl, "S")
If r <> 0 And (cl Like "*S[0-9][0-9]*") Then
cl.Characters(r, 3).Font.ColorIndex = 6
End If
r = InStr(cl, "F")
If r <> 0 And (cl Like "*F[0-9][0-9].*") Then
cl.Characters(r, 4).Font.ColorIndex = 7
End If
r = InStr(cl, "F")
If r <> 0 And (cl Like "*F[0-9].*") Then
cl.Characters(r, 3).Font.ColorIndex = 9
End If
Next
End Sub
という感じでどうでしょうか。
早速やってみまして出来ました。!!こんなにうまくいくなんて!MSZ006 さん ありがとうございました。今まで一つ一つ目で追ってやっていたが時間の無駄に感じています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/01/06 08:39
- Visual Basic(VBA) VBA初心者です 検索した数字の行に色をつける 5 2023/02/13 14:22
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) エクセルVBA ダブルクリックしたら色反転を指定したセルのみにしたい 2 2022/04/06 12:52
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) 以下のVBAで該当文字列の前後に付与したい。 例 前に付与 abc ユーザーID 12345 後に付 3 2022/04/19 21:50
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
このQ&Aを見た人はこんなQ&Aも見ています
-
EXCEL VBA で特定の文字に色をつけるマクロを書きたいのですが
Excel(エクセル)
-
エクセルVBA:リストに登録した単語と一致する文字色のみを、変更する方法
Excel(エクセル)
-
Excelのセルの色指定をVBAから配列を用いて効率的に行う方法はあり
Visual Basic(VBA)
-
-
4
VBAで特定の文字を探して隣のセルに色を付けたい
Excel(エクセル)
-
5
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
6
エクセルVBAでセル内の特定文字列を太字に
その他(Microsoft Office)
-
7
VBAで特定の文字以降の文字列の色の変更をしたい
Excel(エクセル)
-
8
VBA Cのセルが空白でなかったら、Aのセルに順番に数値を入力
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
エクセル(勝手に太字になる)
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
エクセルで文字が混じった数字...
-
EXCELで 一桁の数値を二桁に
-
エクセルの並び変えで、空白セ...
-
「B列が日曜の場合」C列に/...
-
2つのエクセルのデータを同じよ...
-
エクセルの表示画面(シート)...
-
エクセルの表から正の数、負の...
-
Excel、市から登録している住所...
-
VBAでセル入力の数式に変数を用...
-
エクセル 文字数 多い順 並...
-
エクセル 同じ値を探して隣の...
-
Excelで半角の文字を含むセルを...
-
お店に入るために行列に並んで...
-
エクセルで一列おきに空白列を...
-
エクセルで、列の空欄に隣の列...
-
エクセルの項目軸を左寄せにしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
EXCELで 一桁の数値を二桁に
-
Excelで半角の文字を含むセルを...
-
2つのエクセルのデータを同じよ...
-
エクセル 文字数 多い順 並...
-
エクセルで文字が混じった数字...
-
エクセルで最初のスペースまで...
-
「B列が日曜の場合」C列に/...
-
エクセル(勝手に太字になる)
-
エクセルの項目軸を左寄せにしたい
-
Excel 文字列を結合するときに...
-
エクセルのセル内の文字の一部...
-
【VBA】特定列に文字が入ってい...
-
Excel、市から登録している住所...
-
文字列に数字を含むセルを調べたい
-
エクセルの表から正の数、負の...
-
VBAで文字列を数値に変換したい
-
エクセルで、列の空欄に隣の列...
-
オートフィルターをかけ、#N/A...
おすすめ情報