Microsoft Office Excel 中實現手動雙面列印

Posted: 2009/03/23 in 資訊
在Microsoft Office Excel 中實現手動雙面列印

引用從http://forum.slime.com.tw/thread130918.html文章

我們知道,Microsoft Word可以很方便的在列印設定中實現手動雙面列印(即,先列印所有奇數頁,再列印所有偶數頁)。
而Microsoft Excel的列印選項裡卻沒有這項功能。
能不能在Microsoft Excel中也實現這項功能呢?答案是肯定的。
利用Microsoft Excel原有的的巨集指令很方便的實現了這項功能。現將經驗與大家一起分享。

啟動Microsoft Excel,按下表單「工具」→「巨集」→「錄製新巨集」,在彈出的錄製新巨集對話視窗中將巨集名改為「手動雙面列印」,並將巨集儲存在「個人巨集工作簙」中,如顯示所顯示

按下確定後,按停止錄製巨集按鈕。再按快捷鍵「Alt+F11」進入Microsoft Visual Basic編輯器。在編輯器中開啟模組1,在我們剛才錄製的手動雙面列印巨集指令中輸入如下vba編輯視窗的程式碼

Sub 手動雙面列印()
Dim Pages As Long
Dim myBottonNum As Integer
Dim myPrompt1 As String
Dim myPrompt2 As String
myPrompt1 = "在列印時發生錯誤,請檢查你的列印機設定"
myPrompt2 = "請將出紙器中已列印好一面的紙取出並將其放回到送紙器中,然後按下""確定"",繼續列印"
Pages = ExecuteExcel4Macro("Get.Document(50)") ‘統計總頁數

On Error Resume Next

If (Pages = 0) Then ‘如果為零,說明沒有可列印內容,結束程序
MsgBox "Microsoft Excel 未發現任何可以列印的內容", 0 + 48
Exit Sub
End If

If (Pages = 1) Then ‘判斷是否只有一頁,如果是,只列印第一頁,然後結束
ActiveSheet.PrintOut
If Err.Number = 1004 Then
MsgBox myPrompt1, 0 + 48 ‘提示用戶發生列印錯誤
End If
Exit Sub
End If

For i = 1 To Pages Step 2 ‘設定循環,列印奇數頁
ActiveSheet.PrintOut From:=i, To:=i
If Err.Number = 1004 Then
MsgBox myPrompt1, 0 + 48
Exit Sub
End If
Next i

myBottonNum = MsgBox(myPrompt2, 1 + 48) ‘提示用戶取出紙張,驗證後繼續列印

If (myBottonNum = 1) Then
For j = 2 To Pages Step 2 ‘列印偶數頁
ActiveSheet.PrintOut From:=j, To:=j
Next j
End If
End Sub

複製貼上結束後
按快捷鍵「Alt+Q」返回到工作表視窗,按下表單「工具」→「自訂」,在彈出的自訂對話視窗中選項「指令」選擇項,在指令選擇項中選項「巨集」→「自訂按鈕」,如顯示所顯示

移到「自訂按鈕」圖示到工作列,右鍵按下「自訂按鈕」圖示,在彈出的對話視窗中將「自訂按鈕」更名為「手動雙面列印」,然後再按下「指定巨集」,如所顯示。

在彈出的「指定巨集」對話視窗中選項我們剛才新增的巨集,如圖所顯示,按下確定結束。
至此,所有工作已全部完成,隨便開啟任意工作簙按下剛新增的按鈕試試,程序就會自動先列印所有奇數頁,然後提示你取出紙張,驗證後再列印所有偶數頁,就像在使用Word的手動雙面列印一樣方便。製作成功後的效果試作。只要按下按鈕,就可以像Word列印設定那樣執行雙面列印工作了!

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s