龔建華
摘要:基于VBA對Microsoft office PowerPoint編程,筆者提出了一套PPT文字編輯的快速解決方案,大幅提高了PPT制作效率。該文詳細描述了編程思路、關(guān)鍵代碼、導(dǎo)入文檔的編輯原則和宏程序應(yīng)用規(guī)范,設(shè)計了通過導(dǎo)入文檔一次性構(gòu)建PPT文本框架和僅僅更新現(xiàn)有PPT文本內(nèi)容的“開關(guān)”,以適應(yīng)不同制作階段或不同使用者的需要。
關(guān)鍵詞:VBA編程;PPT制作;文本導(dǎo)入
中圖分類號:TP37文獻標識碼:A文章編號:1009-3044(2012)24-5885-03
在教學(xué)、科研、商務(wù)諸多工作中,PowerPoint(PPT)的應(yīng)用十分廣泛。因此,PPT的制作技巧成為現(xiàn)代成功人士必須掌握的重要技能之一。快速制作一個優(yōu)秀的PPT作品,需要事先準備好文字、圖片和音像等資料。在已經(jīng)編輯好了文字資料的情況下,通過復(fù)制和粘貼的方法,一張張的幻燈片驟一制作,工作效率很低;采用PowerPoint提供的在“大綱”模式下進行復(fù)制和粘貼的方法,只能一次性將文字粘貼到標題文本框中,工作效率仍然不高。筆者采取VBA編程方法,完美地解決了上述問題,大幅提高了PPT制作效率。
1 PPT文字編輯解決方案
打開或新建一個PPT文檔,按Alt+F11,打開Visual Basic編輯器。首先引用Microsoft Word 11.0 Object Library和Wimdows Script Host Object Model對象,然后插入一個模塊,在模塊中建立一個名為“導(dǎo)入PPT”的過程,編程思路及關(guān)鍵代碼如下:
1.1實現(xiàn)自動查找導(dǎo)入文件功能。
Dim MyFile As String, MyFile1 As String
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Word文件", "*.doc".Filters.Add "文該文件", "*.txt"
If .Show = -1 Then MyFile1 = .SelectedItems(1) Else Exit Sub
End With
1.2如果導(dǎo)入文件為Word文件,則轉(zhuǎn)換為文該文件。
If Right(MyFile1, 3) = "doc" Then
On Error GoTo gjh5033
GetDocText1 = " "
Dim wapp As Word.Application Dim doc As Document
Dim GetDocText1 As String
Set wapp = New Word.Application
wapp.Visible = True
Set doc = wapp.Documents.Open(MyFile1) GetDocText1 = doc.Content.Text
Dim sFile As Object, FSO As Object
MyFile1 = Left(MyFile1, Len(MyFile1) - 4) & ".txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set sFile = FSO.CreateTextFile(MyFile1, True)
sFile.WriteLine (GetDocText1)
sFile.Close
Set sFile = Nothing
Set FSO = Nothing
Name MyFile1 As MyFile
gjh5033:
If Not (doc Is Nothing) Then
doc.Close
Set doc = Nothing
End If
If Not (wapp Is Nothing) Then
wapp.Quit
Set wapp = Nothing
End If
On Error GoTo 0
End If
1.3獲取將寫入到每張幻燈片的標題、內(nèi)容和備注
On Error Resume Next
Dim code As String, code1 As String, code2 As String
Dim str4() As Integer, n As Integer, m As Integer
Dim str5() As String, str6() As String, str7() As String
Dim dfdf As Boolean
code1 = "-----------"幻燈片內(nèi)容分隔符
code2="備注:"備注標示符
n = 0: m = 0: dfdf = False
Open MyFile For Input As #1 Do While Not EOF(1)
code = ""
Line Input #1, code
code = Trim(CStr(code))
m = m + 1
If code = code1 Then
n = n + 1
ReDim Preserve str4(n) As Integer
ReDim Preserve str5(n) As String
ReDim Preserve str6(n) As String
ReDim Preserve str7(n) As String
str4(n) = m
dfdf = False
Else
If str4(n) + 1 = m Then
str6(n) = code
Else
If code = code2 Then dfdf = True
If dfdf = False Then
str5(n) = str5(n) & code & vbCrLf
Else
If code <> code2 Then str7(n) = str7(n) & code & vbCrLf
End If
End If
End If
Loop
Close #1
On Error GoTo 0
1.4將文件內(nèi)容全部導(dǎo)入到幻燈片
Dim oPres As Presentation
Set oPres = Application.ActivePresentation
Dim oSlide As Slide
Dim oShape As Shape
Dim tr As TextRange
Dim i As Long, j As Long
YesNo = MsgBox("導(dǎo)入文檔請按:確定" & vbCrLf & "更新內(nèi)容請按:取消", vbOKCancel, "導(dǎo)入/更新")
If YesNo = "1" Then
For i = 2 To oPres.Slides.Count
ActiveWindow.Selection.SlideRange.Delete
Next
End If
If n > 1 Then
For i = 2 To n
If oPres.Slides.Count < i Then
ActiveWindow.View.GotoSlide Index:=ActivePresentation.Slides.Add(Index:=i, Layout:=ppLayoutText).SlideIndex
End If
Set oSlide = oPres.Slides.Item(i)
For j = 1 To 2)
Set oShape = oSlide.Shapes.Item(j)
If oShape.Name = "Rectangle 2" Then
oShape.TextFrame.TextRange.Text = str6(i - 1) End If
If oShape.Name = "Rectangle 3" Then
oShape.TextFrame.TextRange.Text = str5(i - 1)
End If
Set oShape = Nothing
NextPowerPoint.ActivePresentation.Slides(i).NotesPage.Shapes.Placeholders(2).TextFrame.TextRange.Text = str7(i - 1)
Set oSlide = Nothing
Next
Set oPres = Nothing
End If
2導(dǎo)入文檔編輯時應(yīng)注意的幾個問題
導(dǎo)入文檔可以是“.txt”和“.doc”文件。導(dǎo)入文檔的制作需要遵循如下規(guī)則:
1)注意設(shè)定好標示符。此宏程序?qū)γ繌埢脽羝瑑?nèi)容以"--"為分隔符,您也可以自己設(shè)定,更改code1變量即可。備注標示符為"備注:",您也可以通過修改code2變量來變更。但分隔符和標示符都必須單獨為一行,且宏程序中設(shè)定的分隔符與文檔中的分隔符必須完全一致。
2)分隔符下的第一行定義為幻燈片的標題內(nèi)容,一般文字不宜超過18個字。
3)分隔符下的第二行開始一直到備注標示符或下一個分隔符止為幻燈片的講解內(nèi)容,可以有多個條目,以回車符為標志。但條目數(shù)不宜超過10個。
4)備注的應(yīng)用:備注標示符與下一個分隔符之間的文字為備注內(nèi)容。一個優(yōu)秀的PPT作品,其講解內(nèi)容最好以標題方式展現(xiàn),詳細講解內(nèi)容放在備注中。
5)導(dǎo)入文件必須以分隔符結(jié)束。
3宏程序應(yīng)用時的操作規(guī)則
1)設(shè)置窗口命令。一個宏程序如果不導(dǎo)入到窗口的工具欄中,則只對具有宏程序的PPT文檔有效,換句話說,如果要應(yīng)用到所有的PPT文檔,則必須將宏程序以命令方式導(dǎo)入到Microsoft office PowerPoint的工具欄中。方法是:單擊菜單“工具→自定義”命令,打開“自定義”對話框并切換到“命令”選項卡,然后選中“類別”下邊列表框中的“宏”選項,這時在“命令”下邊的列表框中就會出現(xiàn)我們剛才新添加的宏了。
在工具欄上右擊,然后依次單擊“自定義(C)…”——“命令”——“宏”,在自定義窗口的右則找到“導(dǎo)入PPT”命令,單擊并拖放到工具欄的適當位置即可。以后任何時候打開PPT文件時,只要單擊工具欄的“導(dǎo)入PPT”按鈕,就可以輕松地將編輯好的文檔導(dǎo)入到PPT中或更新PPT文本內(nèi)容,非常方便和實用。
2)通常PPT文檔的首頁為封面設(shè)計,也就是母版的第二張幻燈片,因此,本宏程序設(shè)定為不對首頁內(nèi)容進行導(dǎo)入。如果您打開的PPT文檔不止一張幻燈片,則導(dǎo)入時PPT的活動頁不能是首頁,否則首頁會被視為“文檔頁”(也就是母版第一張幻燈片的版式)而導(dǎo)入內(nèi)容。
3)強烈建議您先選擇或設(shè)計好PPT母版,設(shè)置好母版“文檔頁”標題和內(nèi)容文本框的字體、文字大小和顏色,然后再進行文本導(dǎo)入,因為這樣導(dǎo)入后制作的PPT根本不用再去調(diào)整或編輯文本,從而大大提高了工作效率。
4)應(yīng)用前需將PPT的宏安全級別設(shè)置為“中”或“低”,否則宏程序不會運行。宏安全級別設(shè)置后,必須重新啟動Microsoft office PowerPoint才能生效。如果設(shè)置為“中”,則打開PPT文檔時會出現(xiàn)是否啟用宏的提示窗口。
5)本宏程序在Microsoft office PowerPoint 2003中調(diào)試通過。
文字編輯工作完成后,再添加合適的圖片、動畫等,一個圖文并茂的PPT文檔就這樣輕松地完成了。
參考文獻:
[1]翁丹,尹小港.PowerPoint 2007應(yīng)用技能培訓(xùn)教程[M].北京:海洋出版社,2011.
[2]張艷波.PowerPoint基礎(chǔ)教程[M].北京:清華大學(xué)出版社,2004.