کن یک کتاب کار حاوی 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
این نسخه از ماکرو از کاربر می خواهد که یک شماره کاربرگ را وارد کند. اگر مقدار وارد شده خارج از محدوده باشد، پیام خطا نمایش داده می شود و ماکرو چیزی چاپ نمی کند. اگر کاربر روی لغو کلیک کند یا کادر ورودی را خالی بگذارد، ماکرو به سادگی بدون چاپ چیزی خارج می شود.