[VBA] Word - 自訂存檔方式



贊助商連結


leonchou
2001-10-14, 03:43 PM
這是網友問我的, 提出來給大家參考 ^^


在Word中保存文件時,如何一次將文件能同時以.DOC和.TXT格式進行保存?
而且還希望象Word一樣從文章中自動提取標題 (註1)。

[做法一] 做成巨集按鈕
 
•新增一個巨集, 內容如下--
 
Sub 自訂存檔()
1 With ActiveDocument: On Error GoTo 7
2 aa = .BuiltInDocumentProperties(wdPropertyTitle)
3 If aa = "" Then aa = .Range(, Len(.Sentences(1)) - 2)
4 .SaveAs aa, FileFormat:=wdFormatText
5 .SaveAs aa, FileFormat:=wdFormatDocument
6 End With: Exit Sub
7 MsgBox "檔名 " & aa & " 無效, 無法存檔!"
End Sub
 
[說明]
引用目前文件. 對使用中的文件作以下的動作.
以下若發生錯誤 (檔名無效, 無法存檔) 則跳到第 7 行
設定變數 aa = 文件屬性 (摘要資訊) 的"標題"
若沒有標題則設 aa = 文件中的第一個句子 (不含句號及段落符號) (註1)
將文件以 aa 為檔名, 存為純文字檔案 (.txt)
將文件以 aa 為檔名, 存為標準 Word 文件 (.doc)
結束目前文件的引用, 結束巨集
當存檔錯誤時顯示訊息

•[工具] → [自訂..] → [指令] → [巨集]
 將此巨集拉出來成為一個按鈕 (你可以更改它的名稱) (註2)
 
•存檔時按這個按鈕即可.
 
[做法二] 使用事件巨集,自動執行
 
把上述的巨集內容放到 Application 的 DocumentBeforeSave 事件裡。
這方法的好處是不需另建按鈕,只要依平時習慣存檔,
就會自動引發這個事件巨集而達到所要的功能。
 
但一開始的準備工作較麻煩 (一勞永逸^^),因為 --
事件巨集必需放在所屬的物件模組之中,但
由於並沒有內建的 Application 物件模組 ~
(包括 Word、Excel 或其他 Office 軟体的 VBA 都是如此)
所以必需自行新增一個並宣告為 Application 物件模組,
並且在每次 Word 開啟後要先引用這個模組,才能發生作用。
 
所以呢,程序有點繁瑣... 有人想了解的話再討論好了 :p :D
 
 
[附註]
一般 Word 文件在第一次存檔時, 會以文件 "摘要資訊" 的 [標題]
做為預設檔名; 若沒有標題, 則以文件的第一句作為預設檔名。
按鈕必需放在任一工具列中, 可放入現有的工具列, 或是自行新增一個。
按鈕拉出來後, [自訂工具] 視窗未關閉前, 可在按鈕上按右鍵以修改名稱。
為說明之便而在巨集內加上行號, 一般是不需要行號的。