在列印文件到點陣式印表機時, 如果點陣式的紙張為標準大小 (Letter : 21.59mm x 27.94mm), 要正確的把每一頁印在一頁的範圍之內, 這樣連續列印時位置才不會跑掉, 就必須在選擇 [列印], 再調整 [配合紙張調整大小] 選項為 [Letter]. (不可以選擇 [快速列印])

但是每一份文件都要調一次, 那真的會瘋掉, 那就來個 VBA 吧 :)

在每一份文件中, 都放入一段 VBA 程式碼 :

作法一 :

Sub FilePrint()
    SendKeys "%zLet{tab}"
    Dialogs(wdDialogFilePrint).Show
End Sub

如此, 當按下 [列印] 功能時, 會自動選擇 "Let" 開頭的選項

缺點 :

1. 使用 Ctrl + P 快速鍵此 VBA 無法正確執行, 個人認為是 Hotkey 與 SendKeys 相衝

2. 如果選項 Let 開頭的選項不只一個, 很有可能會選到錯誤的那個

 


 

作法二 :

Sub FilePrint()
    Dim dlgFilePrint As Dialog

    Set dlgFilePrint = Dialogs(wdDialogFilePrint)

    dlgFilePrint.PrintZoomPaperWidth = 12240
    dlgFilePrint.PrintZoomPaperHeight = 15840

    dlgFilePrint.Display
End Sub

wdDialogFilePrint 沒有此選項對應的屬性, 只能用 PrintZoomPaperWidth 與 PrintZoomPaperHeight 來達成

缺點 : 看畫面會覺得沒有設定到, 但是其實是有的

優點 : 不論是按快速鍵或按按鈕都可以正確產出

創作者介紹

Aloz 的 Oracle ERP 天地

Aloz 發表在 痞客邦 PIXNET 留言(0) 人氣()