【摘要】將PPT轉(zhuǎn)換到WORD文檔的方法很多,但都存在不同程序的局限性,在使用綠色軟件PPTConverttoDOC時發(fā)現(xiàn)與Office宏相似,同時它只能針對文本框起效,存在很多不足,我非常喜歡宏應(yīng)用,決心對其升級換代,在升級調(diào)試過程中,由于PPT對象類型太多,頗費周折,最后發(fā)現(xiàn)try…catch…的妙用,峰回路轉(zhuǎn),升級又如此輕松,于是想與大家分享快樂。
【關(guān)鍵詞】 PPT 轉(zhuǎn)換 WORD 方法
【中圖分類號】TP311.56 【文獻(xiàn)標(biāo)識碼】A 【文章編號】1009-8585(2011)06-000-01
在日常工作中,常常需要把PPT轉(zhuǎn)換到WORD文檔,可以使用傳統(tǒng)的復(fù)制粘貼、“另存為”等方法外,還可以使用綠色軟件PPTConverttoDOC來實現(xiàn),但效率和局限性都十分明顯,筆者在分析各自方法優(yōu)缺點基礎(chǔ)上,重新開發(fā)了PPT轉(zhuǎn)換到WORD的通用軟件,使其具有全能轉(zhuǎn)換功能,供大家分享。
1 復(fù)制粘貼法
1.1 復(fù)制粘貼法
在幻燈片視圖中,把每一對象或文本進(jìn)行復(fù)制,在WORD中粘貼,方法簡單,實用且準(zhǔn)確,但如果PPT內(nèi)容較多時,速度慢,效率低的缺點也十分突出。
1.2 利用\"大綱\"視圖復(fù)制
打開PPT演示文稿,單擊\"大綱\",在左側(cè)\"幻燈片/大綱”任務(wù)窗格的“大綱”選項卡里單擊一下鼠標(biāo),按\"Ctrl+A\"組合鍵全選內(nèi)容,然后使用\"Ctrl+C\"組合鍵或右鍵單擊在快捷菜單中選擇\"復(fù)制\"命令,然后粘貼到Word里。這種方法會把原來幻燈片中的行標(biāo)、各種符號原封不動的復(fù)制下來,在WORD中重新編排或修改,只復(fù)制占位符的文本,對其它對象無效,顯然存在嚴(yán)重不足。
2 “另存為”法
2.1 利用\"發(fā)送\"功能巧轉(zhuǎn)換
打開要轉(zhuǎn)換的PPT幻燈片,單擊\"文件\"→\"發(fā)送\"→\"MicrosoftWord\"菜單命令。然后選擇\"只使用大綱\"單選按鈕并單擊\"確定\"按鈕,等一會就發(fā)現(xiàn)整篇PPT文檔在一個Word文檔里被打開。在轉(zhuǎn)換后會發(fā)現(xiàn)Word有很多空行,可使用替換功能全部刪除空行,方法是按\"Ctrl+H\"打開\"替換\"對話框,在高級\"查找內(nèi)容\"里輸入\"^p^p\",在\"替換為\"里輸入\"^p\",多單擊幾次\"全部替換\"按鈕即可,就是將兩個空行,合成一行(\"^p\"就是段落標(biāo)記)。
2.2 利用\"另存為\"直接轉(zhuǎn)換
打開需要轉(zhuǎn)換的幻燈片,點擊\"文件\"→\"另存為\",然后在\"保存類型\"列表框里選擇存為\"rtf\"格式,用Word打開剛剛保存的rtf文件,再進(jìn)行適當(dāng)?shù)木庉嫾纯蓪崿F(xiàn)轉(zhuǎn)換。
3 使用專用軟件PPTConverttoDOC轉(zhuǎn)換
以上快捷方法都只針對占位符進(jìn)行轉(zhuǎn)換,存在很大的局限性,PPTConverttoDOC進(jìn)行了較大改進(jìn),不管是占位符,還是用戶添加的文本框都轉(zhuǎn)換。方法是在運行PPTConverttoDOC之前將Word和PPT程序都關(guān)閉,選中要轉(zhuǎn)換的PPT文件,直接拖曳到\"PPTConverttoDOC\"程序中,單擊工具軟件里的\"開始\"按鈕即可轉(zhuǎn)換,轉(zhuǎn)換結(jié)束后程序自動退出;如果選中\(zhòng)"轉(zhuǎn)換時加分隔標(biāo)志\",則會在轉(zhuǎn)換好的word文檔中顯示當(dāng)前內(nèi)容在原幻燈片的哪一頁,轉(zhuǎn)換完成后即可自動新建一個Word文檔,顯示該P(yáng)PT文件中的所有文字。
4 全能轉(zhuǎn)換的改進(jìn)方法
PPT中除文本框外,還有很多對象包含文本,如基本形狀(圓柱、笑臉……)星與旗幟、標(biāo)注、動作按鈕等等都包含文本,另外PPT中圖片、圖表、表格等等很多重要信息都是WORD的必不可少的內(nèi)容,轉(zhuǎn)換時都應(yīng)該統(tǒng)統(tǒng)在內(nèi),不管是PPT自動轉(zhuǎn)換方法,還是綠色軟件PPTConverttoDOC都遠(yuǎn)遠(yuǎn)達(dá)不到要求,因此改進(jìn)軟件功能,使其具有全能轉(zhuǎn)換功能是十分必要的。
4.1 基本方法
通過對象的Type屬性,判斷是Microsoft.Office.Core.MsoShapeType是什么屬性,再復(fù)制文本或是粘貼其它對象。具體方法是
if (sh.Type == Microsoft.Office.Core.MsoShapeType.msoTextBox)//文本框
{sh.TextFrame.TextRange.Copy();
WordApp.Selection.Paste();}
else if (sh.Type == Microsoft.Office.Core.MsoShapeType.msoTable)//表格
{sh.Copy();
WordApp.Selection.Paste();}
…………//其中sh為遍歷幻燈片的每一個對象,TextFrame.TextRange為文本框的文本。
這種方法由于Type類型太多,每一種都要進(jìn)行判斷,程序代碼會很多,況且每一種類型情形還不一致,如自選圖形又分為連接符、箭頭總匯,有的有TextFrame屬性,有的沒有,程序會更加復(fù)雜。
4.2 巧妙方法
在程序調(diào)試中,我使用try…catch…捕捉錯誤時,發(fā)現(xiàn)當(dāng)對象沒有TextFrame.TextRange屬性時,均用sh.Copy()直接拷貝來解決問題,所以最終程序演化為:
try
{ sh.TextFrame.TextRange.Copy(); }
catch
{ sh.Copy(); }
WordApp.Selection.Paste();
不再區(qū)分對象類型,而是判斷是否有TextFrame.TextRange屬性,并把try…catch…捕捉錯誤語句當(dāng)成一個分支語句if…then…來使用,當(dāng)有TextFrame.TextRange屬性就復(fù)制文本,否則粘貼對象,這是一種創(chuàng)新,供大家分享,需要說明的是,盡管是一種判斷,但不能用if…then…來實現(xiàn),因為當(dāng)對象沒有TextFrame.TextRange屬性時,會導(dǎo)致轉(zhuǎn)換失敗,至此,錯綜復(fù)雜的各種對象都轉(zhuǎn)換為是否有TextFrame.TextRange屬性了,使程序變得十分簡單。