ここから本文です

マクロで文字の色によって書式変更をしたいのですが可能でしょうか?

ki_********さん

2012/9/2022:42:29

マクロで文字の色によって書式変更をしたいのですが可能でしょうか?

E列に赤文字で取り消し線の付いているセルがあればその行の書式を太文字に。
E列に青文字のセルがあれば、その行を太文字及び斜線に。

上記2点のやり方が分かりません。
『この値であればフォントの色などを変える】ということは条件付書式で
することは分かるのですが。

For Next文で使用したいのですが、色によって指定ということは出来るのでしょうか。
ご存知の方がいらっしゃいましたらお教え下さいませ。

閲覧数:
1,043
回答数:
2

違反報告

ベストアンサーに選ばれた回答

yam********さん

2012/9/2109:54:46

こんなコードでどうでしょう。
なお、見た目の色とColorIndexの値が異なっていることがあるのでチェック用のマクロもお使いください。

Sub Sample()
For i = 1 To Cells(Rows.Count, 5).End(xlUp).Row
With Cells(i, 5).Font
If .ColorIndex = 3 And .Strikethrough = True Then
Rows(i).Font.Bold = True
ElseIf .ColorIndex = 5 Then
Rows(i).Font.Bold = True
Rows(i).Font.Italic = True
End If
End With
Next i
End Sub


Sub CheckColorIndex() '現在選択しているセルの文字色
MsgBox ActiveCell.Font.ColorIndex
End Sub

質問した人からのコメント

2012/9/24 23:26:16

笑う お二人ともありがとうございました。最終的にyama_ski_11様のを使用させていただきましたので選ばせていただきました。本当にありがとうございました!

ベストアンサー以外の回答

1〜1件/1件中

ale********さん

2012/9/2109:52:01

Dim row As Long, mrow As Long

'最終行の取得
mrow = Cells(1, 5).End(xlDown).row

For row = 1 To mrow
'赤文字で取り消し線の付いているセルの場合
If Cells(row, 5).Font.ColorIndex = 3 And Cells(row, 5).Font.Strikethrough Then
'その行(F~I)を太字に
Range(Cells(row, 6), Cells(row, 9)).Font.Bold = True

'青文字のセルの場合
ElseIf Cells(row, 5).Font.ColorIndex = 5 Then
'その行(F~I)を太字&斜線に
Range(Cells(row, 6), Cells(row, 9)).Font.Bold = True
Range(Cells(row, 6), Cells(row, 9)).Borders(xlDiagonalUp).LineStyle = xlContinuous
End If

Next

「その行」が行全体なのか、行の一部かわからなかったので、
仮にF~I列にしました。
もし、行全体の場合は、
Range(Cells(row, 6), Cells(row, 9))

Range(row & ":" & row)
にしてください。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる