به اشتراک گذاری یک ورک بوک اکسل با یک گروه همچنین به معنای درگیر شدن با چاپگرهای مختلف، رایانه های شخصی مختلف و نیازها و انتظارات کاربر متفاوت است. وقتی نوبت به چاپ برگه می رسد، این در هیچ کجا آشکارتر نیست. بدیهی است که کاربران مختلف رایانه های شخصی متفاوتی دارند و ممکن است چاپگرهای متفاوتی داشته باشند، بنابراین نتایج چاپ شده می تواند از یک کاربر به کاربر دیگر متفاوت باشد. علاوه بر این، کاربران مختلف ممکن است محدوده چاپ را در آنچه از یک کاربرگ تولید می شود تغییر دهند.
اگر شما مسئول یک کاربرگ خاص هستید، ممکن است بخواهید به نحوی از تنظیمات چاپی مختلفی که ایجاد کرده اید محافظت کنید تا توسط سایر کاربران مخدوش نشوند. شاید ساده ترین راه برای انجام این کار این باشد که تنظیمات چاپ خود را در یک ماکرو ذخیره کنید و سپس هر بار که ورک بوک بسته می شود، آن ماکرو را اجرا کنید. به این ترتیب، می توان تنظیمات را به «پیش فرض هایی» که مشخص کرده اید تغییر داد، بدون نگرانی از اینکه کاربران همه آنها را به هم خواهند ریخت.
به عنوان مثال، ماکرو زیر نشان می دهد که چگونه می توانید تمام تنظیمات چاپ را برای یک کار چاپی خاص تنظیم کنید:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(1)
.RightMargin = Application.InchesToPoints(1)
.TopMargin = Application.InchesToPoints(1)
.BottomMargin = Application.InchesToPoints(1)
.HeaderMargin = Application.InchesToPoints(0.5)
.FooterMargin = Application.InchesToPoints(0.5)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperLetter
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 99
.PrintErrors = xlPrintErrorsDisplayed
.PrintArea = "MyPrintArea"
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
End Sub
این ماکرو یک کنترل کننده رویداد است و باید در شی ThisWorkbook در ویرایشگر VBA ذخیره شود. برای اینکه ماکرو برای نیازهای خاص شما کار کند، به سادگی تنظیمات را تغییر دهید تا با نیازهای شما مطابقت داشته باشد. همچنین می توانید با جایگزین کردن نام کاربرگ به جای شی ActiveSheet، تنظیمات را برای یک کاربرگ خاص اعمال کنید. در اینجا دو نمونه وجود دارد:
With Worksheets(1).PageSetup
With Worksheets("Report").PageSetup
اولین مورد بر روی اولین کاربرگ در ورک بوک کار می کند، در حالی که دومی روی کاربرگ به نام "گزارش" کار می کند.
البته، زمانی که شخص دیگری Workbook شما را باز می کند، ممکن است ماکرو به طور خودکار غیرفعال شود یا اعلانی مبنی بر وجود ماکرو در آن ببیند. اگر ماکروها را غیرفعال کنند، پس از بسته شدن ورک بوک، ماکرو با تنظیمات پیش فرض اجرا نمی شود. البته راه حل این است که شما Workbook را باز کنید، ماکروها را فعال کنید و سپس Workbook را ببندید. این ماکرو را اجرا می کند و تنظیمات شما دوباره همانطور که می خواهید بازیابی می شوند.