• 締切済み

印刷時の列の色付け

A1:G10の表があり、sub 印刷() のマクロで印刷します。10行(A10~G10)の間には整数で1,2,3と三か所に数字が有ります。印刷時に此の数字のあるセルを認識しこの列に色(うす水色)を付けて印刷し、マクロ終了時には最初の色のない表にしたいのですがどのように記述したらよいのでしょうか。よろしくおねがいします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.1

マクロの記録でもとってみましたか。マクロの記録で+微修正で出来る課題だと思うが マクロ初心者と思うならマクロの記録を応用できないかまず考えるべき。 ーー 3(例えば)を検索 Sub Macro1() Range("A1:G10").Select Selection.Find(What:="3", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate End Sub これで色をつけるのは Sub Macro1() Range("A1:G10").Select Selection.Find(What:="3", After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate MsgBox ActiveCell.Column c = ActiveCell.Column Range(Cells(1, c), Cells(10, c)).Interior.Color = vbCyan End Sub 1,2、3についてやるのは Sub Macro1() Range("A1:G10").Select For i = 1 To 3 Selection.Find(What:=i, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate MsgBox ActiveCell.Column c = ActiveCell.Column Range(Cells(1, c), Cells(10, c)).Interior.Color = vbCyan Next i End Sub >最初の色のない表にしたいのですがどのように 上記を繰り返して、 (1) Sub Macro1() Range("A1:G10").Select For i = 1 To 3 Selection.Find(What:=i, After:=ActiveCell, LookIn:=xlFormulas, LookAt _ :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, MatchByte:=False, SearchFormat:=False).Activate MsgBox ActiveCell.Column c = ActiveCell.Column Range(Cells(1, c), Cells(10, c)).Interior.Color = RGB(255, 255, 255) 'vbCyan Next i End Sub か (B)最初のコードの列を覚えておいて、セル色をなくす。 (C)別の方法として新たに列の色をなくすマクロの記録でも出来るでしょう。

hoshi7777
質問者

お礼

ありがとうございました。

すると、全ての回答が全文表示されます。