ایجاد سوال
dark_mode
0 دوستدار 0 امتیاز منفی
26 visibility
موضوع: آفیس توسط:
اگر از ماکروها برای چاپ اسناد استفاده می کنید، از قبل می دانید که ماکرو می تواند چاپگر واقعی را مشخص کند که خروجی باید به آن ارسال شود. اگر بخواهید سینی کاغذ خاصی را نیز برای استفاده در آن چاپگر مشخص کنید، چه؟ متأسفانه، این در ورد یک ویکت چسبنده است. یک گشت و گذار و توضیح مختصر به روشن شدن دلیل این موضوع کمک می کند.
اینکه Word از کدام سینی کاغذ استفاده می کند به عوامل مختلفی بستگی دارد که برخی از آنها تحت کنترل خود Word نیستند. به عنوان مثال، موارد زیر را در نظر بگیرید که برخی از آنها به نسخه Word که استفاده می کنید بستگی دارد.
  • اگر کادر گفتگوی Word Options را نمایش دهید و روی Advanced کلیک کنید، در گروه Print می توانید یک سینی پیش فرض را تعیین کنید.
  • اگر برگه Page Layout روبان را نمایش دهید و سپس روی نماد در سمت راست پایین گروه Page Setup کلیک کنید، کادر محاوره ای Page Setup را خواهید دید. در برگه منبع کاغذ می توانید مشخص کنید که از کدام سینی کاغذ برای صفحه اول و کدام یک برای صفحات بعدی استفاده شود.
  • اگر Ctrl+P را برای چاپ فشار دهید و سپس روی Properties کلیک کنید، اغلب (بسته به چاپگرتان) می توانید به اطراف بگردید و یک سینی کاغذ را انتخاب کنید.
بنابراین، Word دارای دو مکان است که می‌توانید سینی‌های کاغذ را مشخص کنید، و چاپگر شما ممکن است مکان خاص خود را برای تنظیم سینی کاغذ برای استفاده داشته باشد. این قسمت تنظیمات نهایی (از طریق دکمه Properties) فراتر از "دسترسی" VBA است - کادر گفتگو تنظیمات را در درایور چاپگر نشان می دهد، نه در خود Word.
بدتر از همه، هیچ توضیح واضحی در مورد اینکه کدام تنظیمات در هر کار چاپی اولویت دارند وجود ندارد. آیا تنظیمات در کادر گفتگوی Page Setup تنظیمات درایور چاپگر را لغو می کند؟ آیا تنظیمات درایور چاپگر تنظیمات کادر گفتگوی Word Options را لغو می کند؟ تنظیمات کادر گفتگوی Word Options چگونه با تنظیمات Page Setup مرتبط است؟ شما ایده را دریافت می کنید؛ بسیاری از تنظیمات، همراه با تنوع تنظیمات مختلف درایور چاپگر و قابلیت های چاپگر می تواند منجر به سردرگمی شود. آنچه ممکن است در یک ترکیب از شرایط کار کند ممکن است در شرایط دیگر کارساز نباشد.
همانطور که گفته شد، چندین روش وجود دارد که می توانید برای کنترل انتخاب سینی کاغذ از طریق ماکرو امتحان کنید. مهم است که به خاطر داشته باشید که ماکرو شما می تواند تنظیمات را در کادر گفتگوی Word Options و همچنین در کادر محاوره ای Page Setup مشخص کند. با این حال، ماکرو شما نمی‌تواند تنظیمات قابل دسترسی از طریق دکمه Properties کادر محاوره‌ای Print را مشخص کند. (در یک لحظه بیشتر در این مورد.)
اگر می‌خواهید تنظیمات سینی راه‌اندازی صفحه را تنظیم کنید، می‌توانید این کار را با استفاده از ماکرو مشابه زیر انجام دهید:
Sub CustomPageSetup() Dim strTrayFirst As String Dim strTrayOther As String Dim lngTrayFirst As Long Dim lngTrayOther As Long Other setup code goes here strTrayFirst = System.PrivateProfileString(strIniFile, _ "Printer Trays", "Letter First") If strTrayFirst <> "" Then Select Case strTrayFirst Case "Automatic Sheet Feed" lngTrayFirst = wdPrinterAutomaticSheetFeed Case "Default Bin" lngTrayFirst = wdPrinterDefaultBin Case "Large Capacity Bin" lngTrayFirst = wdPrinterLargeCapacityBin Case "Large Format Bin" lngTrayFirst = wdPrinterLargeFormatBin Case "Lower Bin" lngTrayFirst = wdPrinterLowerBin Case "Manual Feed" lngTrayFirst = wdPrinterManualFeed Case "Middle Bin" lngTrayFirst = wdPrinterMiddleBin Case "Upper Bin" lngTrayFirst = wdPrinterUpperBin Case Else lngTrayFirst = wdPrinterLowerBin End Select End If strTrayOther = System.PrivateProfileString(strIniFile, _ "Printer Trays", "Letter Other") If strTrayOther <> "" Then Select Case strTrayOther Case "Automatic Sheet Feed" lngTrayOther = wdPrinterAutomaticSheetFeed Case "Default Bin" lngTrayFirst = wdPrinterDefaultBin Case "Large Capacity Bin" lngTrayOther = wdPrinterLargeCapacityBin Case "Large Format Bin" lngTrayOther = wdPrinterLargeFormatBin Case "Lower Bin" lngTrayOther = wdPrinterLowerBin Case "Manual Feed" lngTrayOther = wdPrinterManualFeed Case "Middle Bin" lngTrayOther = wdPrinterMiddleBin Case "Upper Bin" lngTrayOther = wdPrinterUpperBin Case Else lngTrayOther = wdPrinterUpperBin End Select End If With ActiveDocument.PageSetup .FirstPageTray = lngTrayFirst .OtherPagesTray = lngTrayOther End With End Sub
این ماکرو، علیرغم طولش، تنها دو تنظیم را تنظیم می‌کند: تنظیمات صفحه اول و تنظیمات دیگر صفحات در برگه منبع کاغذ در کادر محاوره‌ای Page Setup. ماکرو نیز کامل نیست، اما تنها نمونه ای از نحوه انجام "تنظیم" واقعی در ماکرو خود شماست. این کد خاص دو تنظیمات را از یک فایل INI می خواند (نام فایل در رشته strIniFile مشخص شده است)، و سپس تنظیمات را بر اساس مقادیر بازیابی شده انجام می دهد. بدیهی است که باید نام فایل INI را که می‌خواهید استفاده کنید، وارد کنید، و همچنین مطمئن شوید که به گونه‌ای تنظیم شده است که حاوی اطلاعات مناسب با فرمت مناسب باشد. (تنظیم فایل‌های INI فراتر از محدوده این نکته است، اما اطلاعات زیادی در مورد موضوع در جاهای دیگر موجود است.) هنگامی که تنظیمات از فایل INI خوانده می‌شوند، به تنظیماتی ترجمه می‌شوند که Word قابل درک باشد.
به دلایلی که قبلا ذکر شد، رویکردی که در این ماکرو مثال زده شد ممکن است در همه شرایط کار نکند. اگر اینطور نیست، ممکن است نتوانید سینی های کاغذی را که چاپگرتان استفاده می کند، حداقل از طریق ماکرو کنترل کنید. به یاد داشته باشید که سینی های کاغذ تنظیم شده از طریق دکمه Properties در واقع تحت کنترل درایور چاپگر شما هستند و تنظیمات درایور چاپگر برای VBA "مشاهده" نیست. یک راه حل بالقوه در این شرایط، راه اندازی درایورهای مختلف چاپگر است. این مراحل کلی را دنبال کنید:
  1. تعیین کنید که چه تعداد سینی کاغذ می خواهید در چاپگر استفاده کنید.
  2. برای هر سینی کاغذی که می خواهید استفاده کنید، یک چاپگر جدید در ویندوز تعریف کنید. به عنوان مثال، اگر می خواهید از سه سینی کاغذ مختلف استفاده کنید، باید سه چاپگر را تعریف کنید که نام هر کدام نماینده یک سینی کاغذ است.
  3. بر روی تعریف چاپگر کلیک راست کرده و ویژگی های چاپگر را تغییر دهید تا در سینی کاغذ مورد نظر چاپ شود.
  4. مرحله 3 را برای هر یک از تعاریف چاپگر دیگر تکرار کنید، مطمئن شوید که سینی های کاغذ متفاوتی را برای هر کدام مشخص کرده اید.
در این مرحله شما چندین تعریف چاپگر را تنظیم کرده اید و هر کدام در یک سینی کاغذ متفاوت در همان چاپگر چاپ می کنند. اکنون می توانید چاپگر مورد نظر را به صورت ماکرو مشخص کنید تا چاپ به سینی کاغذ مورد نظر برود. البته تنها ایراد این راه حل این است که کمی کار راه اندازی را می طلبد. اگر در دفتری با 50 کاربر کار می کنید، این بدان معناست که باید مطمئن شوید که هر 50 پرینتر همانطور که در بالا توضیح داده شد تعریف شده است.
به یاد داشته باشید که سینی کاغذی که قرار است توسط Word استفاده شود، می تواند توسط کاربر با انتخاب یک یا چند تنظیمات در کادرهای محاوره ای مختلف، همانطور که در قسمت اول این نکته توضیح داده شده است، مشخص کند. به همین دلیل، برخی از افراد با استفاده از دستور SendKeys برای تقلید از کلیدهایی که کاربر برای تعیین سینی کاغذ استفاده می کند، موفق بوده اند. (شما می توانید اطلاعات مربوط به SendKeys را در راهنمای آنلاین VBA در دسترس با Word بیابید.)
کاری که SendKeys در واقع انجام می دهد این است که بافر صفحه کلید را با یک سری از کلیدها پر می کند، درست همانطور که کاربر تایپ می کند. با این حال، یک مشکل بالقوه با SendKeys وجود دارد. این می تواند غیر قابل اعتماد باشد زیرا هیچ راهی برای اطمینان از اینکه ضربه های کلید واقعاً به جایی که می خواهید انجام می شود وجود ندارد. در یک سیستم عامل چند رشته ای (مانند ویندوز)، فرآیند دیگری می تواند مداخله کند و دستورات را از مسیر خارج کند.
نکته اصلی این است که، متأسفانه، هیچ راه حلی برای انتخاب سینی کاغذ با استفاده از ماکرو وجود ندارد. راه حلی که برای یک نفر جواب می دهد ممکن است برای دیگری جواب ندهد. به همین دلیل، باید آزمایش کنید تا ببینید چه راه‌حلی برای شما بهتر جواب می‌دهد – اما انتظار نداشته باشید که برای دیگران کارساز باشد.
اگر خواستی، با این لینک از ما حمایت کن

پاسخ شما

looks_5نام شما برای نمایش - اختیاری
حریم شخصی : آدرس ایمیل شما محفوظ میماند و برای استفاده های تجاری و تبلیغاتی به کار نمی رود
عدد چهار رقمی در تصویر را وارد کنید

برای جلوگیری از این تایید در آینده, لطفا وارد شده یا ثبت نام کنید.
اگر حساب گوگل دارید به راحتی وارید شوید

0 پاسخ وجود دارد

سوالات مشابه

برای دسترسی راحت به مطالب سایت ، اپلیکیشن سایت را نصب کنید
و لطفا بعد از نصب امتیاز دهید. با تشکر از حمایت شما
0 دوستدار 0 امتیاز منفی
0 پاسخ 26 visibility
0 دوستدار 0 امتیاز منفی
0 پاسخ 26 visibility
0 دوستدار 1 امتیاز منفی
1 پاسخ 271 visibility
0 دوستدار 0 امتیاز منفی
1 پاسخ 208 visibility
ارسال شده در 4 مرداد 1402 موضوع: سخت افزار توسط: Admin
0 دوستدار 0 امتیاز منفی
1 پاسخ 51 visibility

24.3k سوال

9.6k پاسخ

614 دیدگاه

11.2k کاربر

219 نفر آنلاین
0 عضو و 219 مهمان در سایت حاضرند
بازدید امروز: 4769
بازدید دیروز: 25180
بازدید کل: 20342122
...