كيف يمكنك منع مربع حوار الطباعة عند استخدام طريقة Excel PrintOut
-
09-06-2019 - |
سؤال
عندما أستخدم أسلوب PrintOut لطباعة كائن ورقة عمل إلى الطابعة، يتم عرض مربع الحوار "طباعة" (يظهر اسم الملف والطابعة الوجهة والصفحات المطبوعة وزر إلغاء) على الرغم من أنني قمت بتعيين DisplayAlerts = False.يعمل الكود أدناه في ماكرو Excel ولكن يحدث نفس الشيء إذا استخدمت هذا الكود في تطبيق VB أو VB.Net (مع التغييرات المرجعية المطلوبة لاستخدام كائن Excel).
Public Sub TestPrint()
Dim vSheet As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set vSheet = ActiveSheet
vSheet.PrintOut Preview:=False
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
يحرر:تلقي الإجابة أدناه مزيدًا من الضوء على هذا (قد يكون مربع حوار Windows وليس مربع حوار Excel) ولكنها لا تجيب على سؤالي.هل يعرف أحد كيفية منع عرضه؟
يحرر:شكرًا لك على بحثك الإضافي، كيفن.يبدو إلى حد كبير أن هذا هو ما أحتاجه.لست متأكدًا من رغبتي في قبول رمز واجهة برمجة التطبيقات (API) بشكل أعمى مثل هذا.هل لدى أي شخص آخر أي معرفة حول مكالمات API هذه وأنهم يفعلون ما يزعمه المؤلف؟
المحلول
عندما تقول مربع حوار "الطباعة"، أفترض أنك تقصد مربع الحوار "طباعة xxx على" بدلاً من مربع حوار الطباعة القياسي (حدد الطابعة، وعدد النسخ، وما إلى ذلك).بأخذ المثال أعلاه وتجربته، هذا هو السلوك الذي رأيته - تم عرض عبارة "الطباعة الآن..." لفترة وجيزة ثم تم إغلاقها تلقائيًا.
ما تحاول التحكم فيه قد لا يكون مرتبطًا ببرنامج Excel، ولكنه بدلاً من ذلك يكون سلوكًا على مستوى Windows.إذا كان من الممكن التحكم فيه، فستحتاج إلى أ) تعطيله، ب) إجراء الطباعة، ج) إعادة التمكين.إذا فشل الرمز الخاص بك، فهناك خطر عدم إعادة تمكينه للتطبيقات الأخرى.
يحرر:جرب هذا الحل: كيف يمكنك منع مربع حوار الطباعة عند استخدام طريقة Excel PrintOut.يبدو أنه يصف بالضبط ما تبحث عنه.
نصائح أخرى
إذا كنت لا تريد إظهار مربع حوار الطباعة، فما عليك سوى إجراء اختبار ماكرو على النحو التالي؛لن يُظهر أي مربع حوار طباعة وسيكتشف الطابعة الافتراضية ويطبع على الفور.
sub test()
activesheet.printout preview:= false
end sub
قم بتشغيل هذا الماكرو وسيقوم بطباعة الورقة النشطة حاليًا دون عرض مربع حوار الطباعة.
تقوم استدعاءات واجهة برمجة التطبيقات (API) الموجودة في المقالة المرتبطة بواسطة Kevin Haines بإخفاء مربع حوار الطباعة كما يلي:
- احصل على مقبض نافذة حوار الطباعة.
- أرسل رسالة إلى النافذة لإخبارها بعدم إعادة الرسم
- إبطال النافذة، مما يفرض إعادة رسم لا يحدث أبدًا
- اطلب من Windows إعادة طلاء النافذة، مما يؤدي إلى اختفائها.
هذا أمر مبالغ فيه بعبارة ملطفة.
تعد مكالمات واجهة برمجة التطبيقات (API) آمنة، ولكن ربما تريد التأكد من تعيين تحديث الشاشة لمربع حوار الطباعة على True في حالة فشل التطبيق الخاص بك.