アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルVBAで思うような動きができなく困っています。
どう修正したらよいか添削をお願いします。

エクセル365です

≪困っていること≫
1~4は思うように動くのですが、5がどうしてもできません
印刷した紙と画面表示が「支」のフォントカラーが黒になってしまします。

≪行いたいこと&今の状況≫
【VBAで】
1、常に選択したセルがある行全体を色付け表示します。
2、印刷する時は、その色付けした行の色は印刷されないようにします。
3、印刷後は、再度常に選択したセルがある行全体が色付け表示されるように戻します。

【シートで】
4、条件付き書式で「C列に「支」と入力されたときはフォントカラーを赤色になるように設定しています。
5、このフォントカラーは印刷する紙にも印刷後も常に設定されたままにします

【今書いてあるコード】
Option Explicit

Private Sub Workbook_BeforePrint(Cancel As Boolean)
ThisWorkbook.Worksheets(1).Cells.FormatConditions.Delete
Application.ScreenUpdating = True
Application.OnTime Now(), "ThisWorkbook.AfterInsatsu"
End Sub

Private Sub AfterInsatsu()
Dim Rng As Range
Dim Frm As Object

With ThisWorkbook.Worksheets(1)
Set Rng = Worksheets(1).Cells
Set Frm = Rng.FormatConditions.Add(Type:=xlExpression, Formula1:="=CELL(""ROW"")=ROW()")
Frm.Interior.Color = RGB(198, 224, 180)
End With
Application.ScreenUpdating = True
End Sub

A 回答 (2件)

こんにちは



以前も回答したように、仕組みを少し変えた方が簡単にできると思いますけれど・・
https://oshiete.goo.ne.jp/qa/13438388.html

どうしても、現状のままでなさりたいのなら、
>FormatConditions.Delete
で、条件付き書式を削除してしまっているので、
>印刷する紙にも印刷後も常に設定されたままにします
の書式もまとめて削除されているだけです。
削除したら再設定するか、あるいは、その条件付き書式は残して削除するようにするかのどちらかでしょう。


・・ですので、前回の回答の主旨は条件付き書式をいじらなくても済むように、
>セルがある行全体を色付け表示します。
の部分を、VBAのSelection_Changeイベントで処理するようにしておけば良いのではないかという意味です。
そうすれば、印刷前には、
 Cells.Interior.Color = xlNone
とするだけで済みますし、後始末も不要です。
    • good
    • 0

Frmってセルなんですか?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!