دونا مسئول تهیه سندی است که در سراسر شرکت او مورد استفاده قرار خواهد گرفت. او میخواهد که سند، وقتی باز میشود، نوار بالای صفحه را به حداقل برساند و پس از بسته شدن، نوار را به حالت «پیش از باز شدن» برگرداند. این کار برای ارائه حداکثر سطح صفحه برای سند انجام می شود. دونا تصور میکند که انجام این کار به یک ماکرو نیاز دارد، اما مطمئن نیست که از کدام دستورات برای انجام کار استفاده کند.
کمبود شگفت انگیز اطلاعات در مورد کار با روبان در VBA وجود دارد. در واقع، تنها روشی که ما توانستهایم مکان یابی کنیم که نوار را به حداقل میرساند، موارد زیر است:
ActiveWindow.ToggleRibbon
این روش مانند فشار دادن Ctrl+F1 است . روبان را تغییر می دهد، آن را از حداکثر به کمینه تغییر می دهد و بالعکس. البته این چیزی نیست که دونا می خواهد انجام دهد. او می خواهد مطمئن شود که به حداقل رسیده است. با استفاده از روش ToggleRibbon، میتوانید روشی را برای فهمیدن اینکه آیا روبان به حداقل رسیده است یا خیر، «فاج» کنید. ماکروهای مثال زیر را در نظر بگیرید.
Dim w As Variant Dim h1 As Long Dim h2 As Long Dim StartedWithRibbon As Boolean Private Sub Document_Open() Set w = ActiveWindow h1 = w.UsableHeight w.ToggleRibbon h2 = w.UsableHeight If h1 < h2 Then StartedWithRibbon = False Else StartedWithRibbon = True w.ToggleRibbon End If End Sub
Private Sub Document_Close() Set w = ActiveWindow h1 = w.UsableHeight w.ToggleRibbon h2 = w.UsableHeight If h2 < h1 Then If StartedWithRibbon Then w.ToggleRibbon Else If Not StartedWithRibbon Then w.ToggleRibbon End If End Sub
در واقع دو ماکرو در اینجا وجود دارد، یکی به طور خودکار زمانی که یک سند باز می شود و دیگری هنگام بسته شدن آن فعال می شود. ماکروها ارتفاع پنجره فعال را بررسی می کنند و آن را در متغیر h1 ذخیره می کنند. سپس نوار را تغییر می دهد و دوباره ارتفاع پنجره فعال را بررسی می کند و آن را در h2 ذخیره می کند. با مقایسه این دو مقدار، می توانید تعیین کنید که آیا روبان به حداقل رسیده است یا خیر و سپس مطابق با آن عمل کنید.