اکسل به شما امکان می دهد نمودارها را به صورت تمام رنگی ایجاد کنید. هنگامی که برای چاپ نمودار آماده شدید، می توانید به اکسل دستور دهید تا آن را به صورت "سیاه و سفید" چاپ کند (در برگه نمودار در کادر محاوره ای Page Setup). ممکن است تعجب کنید که آیا راهی برای صادرات این نسخه "سیاه و سفید" نمودار وجود دارد تا بتوانید با آن در برنامه دیگری کار کنید.
پاسخ این است که شما نمی توانید این کار را انجام دهید، حداقل نه به طور مستقیم. برای درک دلیل این امر، باید نحوه عملکرد ویژگی "چاپ سیاه و سفید" را درک کنید. این ویژگی فقط بر آنچه که به درایور چاپگر (به چاپگر شما) ارسال می شود تأثیر می گذارد، و اصلاً بر نمودار واقعی تأثیر نمی گذارد. حتی زمانی که از پیش نمایش چاپ استفاده می کنید، نمودار واقعی خود را مشاهده نمی کنید، بلکه نمایشی از شکل ظاهری نمودار شما هنگام چاپ است. بنابراین، شما خروجی چاپگر را می بینید، نه نمودار واقعی.
اگر می خواهید یک نسخه سیاه و سفید از نمودار خود را صادر کنید، راه های مختلفی برای انجام کار وجود دارد. اولین مورد این است که به سادگی نمودار را در پیش نمایش چاپ مشاهده کنید و یک تصویربرداری از صفحه انجام دهید ( Alt+Print Screen را فشار دهید ). سپس می توانید صفحه را در برنامه گرافیکی مورد علاقه خود قرار دهید و آن را به دلخواه لمس کنید.
اگر می خواهید نمودار را به جای عکس گرفتن از صفحه صادر کنید، باید رنگ های نمودار را طوری تغییر دهید که واقعاً خاکستری باشند و حاوی همان الگوهایی باشند که در صورت انتخاب چاپ سیاه و سفید مشاهده می کنید. این رویکرد در واقع منبع نمودار را تغییر می دهد، نه اینکه به اکسل برای تغییر نمودار هنگام چاپ تکیه کند. پس از انجام تغییرات قالب بندی، حتی می توانید نمودار را به عنوان «الگوی نمودار» ذخیره کنید تا بتوانید از آن به عنوان الگویی برای نمودارهای دیگری که ایجاد می کنید استفاده کنید.
در صورت تمایل، می توانید از یک ماکرو نیز برای تبدیل بین نمایش نمودار رنگ و مقیاس خاکستری استفاده کنید. این رویکرد به شدت به رنگ هایی که می خواهید در نمودار استفاده کنید، نوع نموداری که استفاده می کنید و تعداد سری های داده در نمودار بستگی دارد. در زیر نمونه ای از ماکرو است که رنگ های یک سری داده را بین رنگی و سیاه و سفید تغییر می دهد تا حداکثر پنج سری داده.
Option Explicit
Public bColored As Integer
Sub ColoredToBW()
Dim cht As Chart
Dim chtSC As SeriesCollection
Dim x As Integer
Dim iSeriesCount As Integer
Dim iColors(1 To 5, 0 To 1) As Integer
Dim iColor As Integer
Set colors for BW series
iColors(1, 0) = 1 Black
iColors(2, 0) = 56 Gray-80%
iColors(3, 0) = 16 Gray-50%
iColors(4, 0) = 48 Gray-40%
iColors(5, 0) = 15 Gray-25%
Set colors for Color series
iColors(1, 1) = 55 Indigo
iColors(2, 1) = 7 pink
iColors(3, 1) = 6 yellow
iColors(4, 1) = 8 Turquoise
iColors(5, 1) = 13 Violet
Toggle Color/BW change 0 to 1 or 1 to 0
bColored = 1 - bColored
Set cht = ActiveChart
check that a chart is selected
If cht Is Nothing Then
MsgBox ("Select a chart")
Exit Sub
End If
Set chtSC = cht.SeriesCollection
Check for MIN of number of series or
colors and only do the minimum
iSeriesCount = Application.WorksheetFunction.Min _
(UBound(iColors), chtSC.Count)
For x = 1 To iSeriesCount
Define the color
iColor = iColors(x, bColored)
Set the LINE color
chtSC(x).Border.ColorIndex = iColor
Marker color
With chtSC(x)
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = iColor
End With
Next x
End Sub
این مثال با همه انواع نمودار کار نخواهد کرد. شما باید آن را تغییر دهید تا نیازهای شما را منعکس کند. با این حال، به عنوان نقطه شروعی برای ساخت کلان خود شما عمل خواهد کرد.