باربارا در تلاش است راهی برای نمایش چندین کاربرگ، یکی پس از دیگری، تقریباً مانند یک نمایش اسلاید پیدا کند. همه کاربرگ ها در یک ورک بوک قرار دارند. او می خواهد که هر کاربرگ به مدت 5 تا 10 ثانیه نمایش داده شود، سپس به طور خودکار به کاربرگ بعدی پریده و برای 5 تا 10 ثانیه نمایش داده شود و غیره. مفهوم این است که همه چیز را زنده نگه دارید و افراد می توانند آن را روی یک مانیتور مشاهده کنند و فقط منتظر بمانند تا برگه کاری آنها ظاهر شود.
انجام این کار با تکیه بر روش .Wait برای توقف ماکرو برای مدت زمان مشخصی نسبتاً آسان است. تنها کاری که باید انجام دهید این است که با مکث بین هر صفحه از صفحه نمایش هر صفحه عبور کنید. ماکرو زیر این کار را انجام می دهد:
Sub SlideShow1()
Dim dDelay As Date
Dim w As Worksheet
dDelay = TimeValue("00:00:08")
For Each w In Worksheets
DoEvents
w.Activate
Application.Wait (Now() + dDelay)
DoEvents
Next w
End Sub
ماکرو به مدت هشت ثانیه مکث می کند، اما می توانید مدت زمانی را در خطی که مقداری را به متغیر dDelay اختصاص می دهد تغییر دهید. توجه داشته باشید که ماکرو همچنین چند بار از تابع DoEvents در حلقه نمایش استفاده می کند تا در صورت تمایل، Ctrl+C را فشار دهید تا از ماکرو خارج شوید.
توجه داشته باشید که ماکرو فقط یک بار از مجموعه Worksheets عبور می کند. اگر می خواهید چندین بار این کار را انجام دهید، می توانید پس از اتمام کار، ماکرو را مجدداً راه اندازی کنید، یا می توانید ماکرو را طوری تغییر دهید که حلقه For Every در یک حلقه بیرونی For Next قرار بگیرد که تعداد دفعات را از طریق مجموعه کاربرگ ها کنترل می کند. .
همچنین توجه داشته باشید که ماکرو به سادگی از میان کاربرگ ها عبور می کند، اما ممکن است نتیجه دلخواه را به شما ندهد. مجموعه کاربرگ ها تضمین نمی شود که ترتیب خاصی داشته باشد، بنابراین آنچه می بینید ممکن است کاربرگ هایی باشد که به ترتیب دلخواه شما نیستند. یک رویکرد بهتر ممکن است این باشد که ترتیب دقیقی را که می خواهید مشخص کنید. تغییر ماکرو زیر این کار را انجام می دهد:
Sub SlideShow2()
Dim dDelay As Date
Dim J As Integer
Dim iCnt As Integer
Dim sNames(19) As String
sNames(1) = "Sheet3"
sNames(2) = "Sheet1"
sNames(3) = "Sheet2"
sNames(4) = "Sheet1"
sNames(5) = "Sheet5"
iCnt = 5
dDelay = TimeValue("00:00:08")
For J = 1 To iCnt
DoEvents
Worksheets(sNames(J)).Activate
Application.Wait (Now() + dDelay)
DoEvents
Next J
End Sub
تنظیم ماکرو کمی بیشتر طول می کشد، زیرا باید نام کاربرگ را به آرایه sNames اختصاص دهید. (اینها باید دقیقاً همانطور که در برگه های کاربرگ ظاهر می شوند نوشته شوند.) آنها را به ترتیب دلخواه قرار دهید و حتی می توانید یک کاربرگ را چندین بار تکرار کنید، همانطور که با . سپس متغیر iCnt باید روی تعداد نام های کاربرگ در آرایه sNames تنظیم شود. سپس حلقه نمایش از میان آرایه عبور می کند و هر کاربرگ مشخص شده را به نوبه خود نمایش می دهد.
اگر می خواهید با نمایش اسلاید خود جذاب تر شوید، ممکن است بخواهید از صفحات کاری خود اسکرین شات بگیرید و سپس آن تصاویر را در یک ارائه پاورپوینت قرار دهید.