Bronwyn پرسید که آیا راهی وجود دارد که کادر گفتگوی Open را مجبور کنیم که قابل مشاهده بماند تا بتوان چندین فایل را به طور متوالی باز کرد. در حالی که چندین سند را می توان همزمان با استفاده از کادر گفتگوی باز باز کرد، این چیزی نیست که Bronwyn می خواست انجام دهد.
یک راه حل - که فقط به صورت مماس شامل Word می شود - استفاده از File Explorer (ویندوز 10) یا Windows Explorer (نسخه های قبلی ویندوز) برای نمایش فایل ها در یک پوشه است. یک پنجره اکسپلورر را باز کنید که تمام فایل های سند را نشان می دهد. سپس میتوانید روی فایلها دوبار کلیک کنید یا مجموعهای از فایلها را ایجاد کنید و روی آنها کلیک راست کرده و Open را انتخاب کنید. پنجره به طور مداوم در دسترس است و نیازی نیست نگران نمایش مکرر کادر گفتگوی Open باشید.
اگر راه حلی را مستقیماً در Word ترجیح می دهید، فقط به یاد داشته باشید که Word بسیار قابل تنظیم است، به این معنی که می توانید تقریباً هر جنبه ای از برنامه را تغییر دهید. این شامل رفتار کادر گفتگوی Open است. تنها کاری که باید انجام دهید این است که یک جایگزین برای دستور FileOpen مانند زیر ایجاد کنید:
Public Sub FileOpen() Dim err_handler On Error GoTo err_handler With Dialogs(wdDialogFileOpen) .Name = "*.*" Do While .Show <> 0 .Name = "*.*" Loop End With Exit Sub err_handler: If Err.Number = 5174 Then MsgBox "You can open only one file at a time.", vbCritical Resume Next Else MsgBox Err.Number & vbCrLf & Err.Description, vbExclamation End If End Sub
با نصب این ماکرو، هر زمان که Word کادر محاورهای Open را نمایش میدهد، این کار را با همه فایلها به عنوان نوع فایل مشخص شده انجام میدهد. سپس می توانید یک فایل را انتخاب کنید و کادر محاوره ای دوباره باز می شود تا منتظر انتخاب بعدی شما باشد. اگر روی Cancel در کادر محاوره ای کلیک کنید، فرمان به پایان می رسد و می توانید کارهای دیگر خود را در Word شروع کنید.
تفاوتی بین اجرای کادر محاوره ای Open و اجرای معمولی توسط Word وجود دارد. در Word، میتوانید یک «مجموعه انتخاب» در کادر محاورهای Open ایجاد کنید تا بتوانید چندین فایل را همزمان باز کنید. وقتی از کادر محاورهای wdDialogFileOpen استفاده میکنید (همانطور که زمانی که جایگزینی برای دستور Open ایجاد میکنید انجام میشود)، میتوانید هر بار فقط یک فایل را انتخاب کنید. به نظر نمی رسید این مشکل بزرگی برای Bronwyn باشد، اما می تواند برای سایر کاربران مشکل ساز باشد.
اگر باید توانایی باز کردن چندین فایل را به طور همزمان حفظ کنید، می توانید یک فرمان فرمان را اجرا کنید. با این حال، در اجرای commandbarcontrol، نمی توانید آزمایش کنید که آیا کسی روی Cancel کلیک می کند یا خیر. بنابراین، شما به راه دیگری برای خارج شدن از حلقه نیاز دارید. در روال زیر، می توانید چندین فایل را انتخاب/باز کنید، اما باید به یک کادر محاوره ای نیز پاسخ دهید تا از حلقه ای که کادر محاوره ای را نشان می دهد خارج شوید.
Sub GetNewFiles() Dim Response Do While Response <> vbNo CommandBars("Standard").Controls("&Open...").Execute Response = MsgBox(Prompt:="Open another file?", Buttons:=vbYesNo) Loop End Sub