ここから本文です

現在、E列からM列に背景色が施されています。

nor********さん

2019/2/2316:10:10

現在、E列からM列に背景色が施されています。

L列に 100 とあったらオレンジ
L列に 200 とあったら黄色

それを一度、

L列に 100 とあったら
該当する行のE列からM列の背景色を赤色にして文字色を白色

L列に 200 とあったら
該当する行のE列からM列の背景色をなしにして文字色を黒色で太字

で、印刷して
印刷の直後に元の背景色や太字を標準に戻すまでの
マクロを教えてください。

最終行は E列 で判断します。

エクセル 2016
宜しくお願い致します。

閲覧数:
28
回答数:
1
お礼:
25枚

違反報告

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

hel********さん

2019/2/2316:48:41

>印刷の直後に元の背景色や太字を標準に戻すまでのマクロを教えてください。

背景色を消したり、フォント色を変えたり・・、マクロの記述も面倒なので、そのシートをコピーし、コピーしたシートに条件となるようなコードを書けば良いような気がしますね。あとは、印刷後にそのコピーしたシートを削除すれば・・。

実際の表には、他にも背景色があるかどうか不明なので、背景色はないと考えたコードを提示しておきます。また、印刷プレビューの工程にしています。

Sub Sample()
Dim i As Integer, EndRow As Integer
ActiveSheet.Copy after:=Sheets(Sheets.Count)
With ActiveSheet
EndRow = .Range("E" & Rows.Count).End(xlUp).Row
.Range("E1:M" & EndRow).Interior.ColorIndex = xlNone
For i = 1 To EndRow
If .Range("L" & i).Value = 100 Then
With .Range(.Cells(i, "E"), .Cells(i, "M"))
.Interior.ColorIndex = 3
.Font.ColorIndex = 2
End With
ElseIf .Range("L" & i).Value = 200 Then
With .Range(.Cells(i, "E"), .Cells(i, "M"))
.Font.ColorIndex = 1
End With
End If
Next i
.PrintPreview
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
End With
End Sub

印刷の工程を書くなら、.PrintOutに変更です。

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

2019/2/23 17:29:15

迅速な対応に感謝致します。
圧巻です。
有難う御座いました。

この質問につけられたタグ

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

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

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

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

閉じる

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

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

閉じる