網頁

2012年6月1日

PowerPoint列印簡報為講義模式的頁碼設定

製作研習講義資料,常常需要將不同講師的簡報進行彙整,而列印時會遇到一個問題是【如何在使用講義模式列印時,頁碼可以依照自己的喜好進行設定】,學了很久的電腦,也想了半天竟然找不出辦法來...我想您應該會有快...抓狂...的感覺,結論是按照簡報的設定是無法達成的,也就是說PowerPoint裏並沒有設定這樣的功能(投影片模式列印可以設定頁碼,但講義模式列印就不行),真的是...有點...傑克這太神奇 ( Magic ) 的感覺(有點冷掉了...不要理我...呵呵呵...)

列印簡報講義時,如何讓頁碼不是從1開始,因為有時有好幾個簡報列印,希望頁碼順序能夠相連,或者列印一套簡報的時候,中間卡紙了,要重新列印。




      網路上提出類似問題的人很多,大致有以下幾種解決方案可供參考:

1、利用空白簡報:在ppt的前面插入足夠多的空白簡報,辦法笨是笨了點,畢竟也是方法;

2、一頁一頁列印:設置簡報母版中的講義母版,設置右下角數位區的 “#”,使用固定數位,改一頁打一頁,呵呵。或者直接利用頁腳的功能,在列印預覽中的 “選項” - “備註和講義” 中去除頁碼,在頁腳中輸入數字,這裏的頁腳位置也是在簡報母版中修改的,同樣是一頁一頁列印。

3、先列印一系列僅僅列印了頁碼的空白紙張,然後利用這些已經有數位的白紙來列印。這個辦法其實比上面兩種要好,最容易操作。

4、先將全部的原始檔案轉成PDF檔案格式,再利用PDF軟體設定頁碼。

5、上面三種方案都是臨時的方案,有高人寫了一個VBA來解決,如下所示:

(1) 在工具功能表上選擇 “工具/巨集/巨集”,或者直接按快捷鍵 “Alt+F8”,在巨集名稱上輸入自己取得名字,如 “簡報頁碼設定”,然後點擊 “ 編輯 ” 進行程式的撰寫。

(2)在編輯視窗輸入中複製以下的程式:



Dim i As Long
Dim lStart As Long
Dim lStop As Long
Dim lHandoutKind As Long
Dim lSlide As Long
Dim lSlideEnd As Long
Dim ppHandoutKind As PpPrintOutputType
Dim vbConfirm As VbMsgBoxResult
'
lSlide = InputBox("從哪一張簡報開始列印?", "開始簡報", "1")
'
lStart = InputBox("講義起始頁碼編號: ", "講義起始頁碼", "1")
'
lHandoutKind = InputBox("每頁幾張簡報?" & vbNewLine & "2, 3, 4, 6, 9?", "講義列印類型", "6")
'
Select Case lHandoutKind
Case 1, 2
ppHandoutKind = ppPrintOutputTwoSlideHandouts
lHandoutKind = 2
Case 3
ppHandoutKind = ppPrintOutputThreeSlideHandouts
lHandoutKind = 3
Case 4
ppHandoutKind = ppPrintOutputFourSlideHandouts
lHandoutKind = 4
Case 5, 6
ppHandoutKind = ppPrintOutputSixSlideHandouts
lHandoutKind = 6
Case Else
ppHandoutKind = ppPrintOutputNineSlideHandouts
lHandoutKind = 9
End Select
'
vbConfirm = MsgBox("您已選擇講義列印,每頁投影片張數為" & lHandoutKind & "張,起始列印頁碼為" & lStart & vbNewLine & ",開始列印頁數為" & lSlide & ".", vbOKCancel)
'
If vbConfirm = vbOK Then
'
lStop = Round((ActivePresentation.Slides.Count - (lSlide - 1)) / lHandoutKind)
If Round((ActivePresentation.Slides.Count - (lSlide - 1)) Mod lHandoutKind) <= (lHandoutKind / 2) Then
lStop = lStop + 1
End If
'
For i = 1 To lStop
'
ActivePresentation.NotesMaster.HeadersFooters.SlideNumber.Visible = msoFalse
ActivePresentation.HandoutMaster.Shapes(4).TextFrame.TextRange.Text = lStart
lStart = lStart + 1
'
With ActivePresentation.PrintOptions

'
.RangeType = ppPrintSlideRange
With .Ranges
'
.ClearAll
'
lSlideEnd = lSlide + lHandoutKind - 1
'
If lSlide > ActivePresentation.Slides.Count Then
lSlide = ActivePresentation.Slides.Count
End If
If lSlideEnd > ActivePresentation.Slides.Count Then
lSlideEnd = ActivePresentation.Slides.Count
End If
.Add Start:=lSlide, End:=lSlideEnd
lSlide = lSlide + lHandoutKind
End With
'
' Set number of copies to 1.
'
.NumberOfCopies = 1
'
.OutputType = ppHandoutKind
'
.HandoutOrder = ppPrintHandoutVerticalFirst


' 列印顏色設定為純粹黑白
.PrintColorType = ppPrintPureBlackAndWhite

' 配合紙張調整大小
.FitToPage = msoTrue

' 投影片加框
.FrameSlides = msoTrue


End With
'
' 立即列印出來

ActivePresentation.PrintOut

' 預覽列印;設定預覽列印無法看出講義模式設定頁碼的功能
' ActiveWindow.ViewType = ppViewPrintPreview


Next i
End If
'
ActivePresentation.HandoutMaster.Shapes(4).TextFrame.TextRange.Text = ""
ActivePresentation.NotesMaster.HeadersFooters.SlideNumber.Visible = msoTrue



(3)執行巨集,根據提示輸入數字即可。



4 則留言:

  1. 請問是連中文的部分也一併複製嗎?

    回覆刪除
  2. 請問是否可以雙面列印

    回覆刪除
    回覆
    1. 印表機有支援就可以

      刪除
    2. 那要去哪個地方調整呢,我試過使用巨集沒有地方調整要單面還是雙面,謝謝

      刪除