ترزا به این فکر می کند که آیا راهی برای قالب بندی یک سلول وجود دارد تا اگر محتویات سلول معیارهای خاصی را داشته باشد، یک کاربرگ خاص به طور خودکار چاپ شود. پاسخ کوتاه این است که خیر، هیچ راهی برای استفاده از قالب بندی برای رسیدن به این هدف وجود ندارد. با این حال، می توانید از یک ماکرو کنترل کننده رویداد برای انجام چاپ استفاده کنید.
برای مثال، هر بار که چیزی در ورک بوک تغییر می کند، یکی از کنترل کننده های رویداد پشتیبانی شده توسط اکسل فعال می شود. می توانید یک کنترل کننده رویداد ایجاد کنید که بررسی می کند کدام سلول تغییر کرده است. اگر یک سلول خاص باشد، و اگر آن سلول حاوی مقدار خاصی باشد، می توان یک کاربرگ را چاپ کرد.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$2" Then
If Target.Value = 1001 Then
Worksheets(1).PrintOut
End If
End If
End Sub
این ماکرو بررسی می کند که کدام سلول تغییر کرده است. اگر سلول B2 بود و اگر سلول حاوی مقدار 1001 بود، کاربرگ به طور خودکار چاپ می شود.
البته، ممکن است بخواهید محتوای یک سلول خاص را کنترل کند که وقتی شخصی واقعاً چاپ را انتخاب می کند، چه چیزی چاپ می شود. برای مثال، اگر کاربر چاپ را انتخاب کند، ممکن است بخواهید محتویات یک سلول (مانند E2) را بررسی کنید و بر اساس محتویات آن سلول، به طور خودکار آنچه چاپ شده را تغییر دهید. ماکرو زیر این رویکرد را اتخاذ می کند:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
Select Case Worksheets("Sheet1").Range("E1")
Case 1
Worksheets("Sheet1").PrintOut
Case 2
Worksheets("Sheet2").PrintOut
Case 3
Worksheets("Sheet3").PrintOut
Case 4
Worksheets("Sheet4").PrintOut
Case Else
ActiveSheet.PrintOut
End Select
Cancel = True
Application.EnableEvents = True
End Sub
بسته به اینکه سلول E2 دارای 1، 2، 3 یا 4 باشد، ماکرو Sheet1، Sheet2، Sheet3 یا Sheet4 را چاپ می کند.