白黒およびカラーでの印刷(Microsoft Excel)
ケンは30枚のワークシートを含むワークブックを持っています。彼は、シート1から29を白黒で、シート30をカラーで印刷したいと考えています。彼は、すべてのワークシートを一度に印刷し、特定のワークシートをカラーのみで印刷するように指定する方法があるかどうか疑問に思います。
これは、マクロを使用して行うのが最も簡単です。印刷する直前に、各ワークシートに.BlackAndWhiteプロパティを設定するだけです。
たとえば、次の単純なマクロについて考えてみます。
Sub PrintSingleColorSheet() Dim w As Worksheet Dim S As Integer ' Set worksheet to be in color ' (All others will print in B/W) S = 30 For Each w In Worksheets w.PageSetup.BlackAndWhite = True If w.Index = S Then w.PageSetup.BlackAndWhite = False End If w.PrintOut Next w End Sub
マクロは、カラーにしたいワークシートのインデックス番号をS変数に格納します。 (この場合、インデックス番号は30です。)次に、各ワークシートがステップスルーされ、.BlackAndWhiteプロパティがTrueに設定されます。ただし、ワークシートの.IndexプロパティがSに格納されている値と一致する場合、.BlackAndWhiteプロパティはFalseに設定され、カラーで印刷されます。その後、プリントアウトはデフォルトのプリンタに送信されます。
必要に応じて、マクロをより使いこなすことができます。つまり、カラーで印刷するワークシートをユーザーに尋ねることができます。
Sub PrintSingleColorSheet() Dim w As Worksheet Dim S As Integer Dim sTemp As String Dim sMsg As String sMsg = "There are " & Worksheets.Count & " worksheets in this " sMsg = sMsg & "workbook. Please enter the number of the single " sMsg = sMsg & "worksheet you want to print in color. (All " sMsg = sMsg & "others will print in black and white.)" sTemp = InputBox(sMsg) S = Val(sTemp) If S > 0 And S <= Worksheets.Count Then For Each w In Worksheets w.PageSetup.BlackAndWhite = True If w.Index = S Then w.PageSetup.BlackAndWhite = False End If w.PrintOut Next w Else sMsg = "You entered a value that is out of range." If sTemp <> "" Then MsgBox sMsg End If End If End Sub
このバージョンのマクロは、ユーザーにワークシート番号の入力を求めます。入力した値が範囲外の場合、エラーメッセージが表示され、マクロは何も出力しません。ユーザーが[キャンセル]をクリックするか、入力ボックスを空のままにすると、マクロは何も印刷せずに終了します。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(13738)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice365のExcelに適用されます。