引用 | 編輯
ebolaman
2015-02-16 16:25 |
1樓
▲ |
||||||||||
說明
1. 用 ActiveWorkbook.Path 取得 Excel 活頁簿的所在資料夾 2. Excel 2010 要用副檔名 xlsm 儲存才能存 Macros (程式碼) 3. 開啟 Word 先用 instances = OpenWord() 返回 Word 的實體,操作完後用 CloseWord(instances) 關閉 4. 程式碼需要先加入參考 Microsoft Word XXX Object Library,如果用 2010 版 XXX 是 14.0 5. 底下程式碼開啟和 Excel 同資料夾的 Word 文件名稱 "Document1.docx" 6. 程式碼如和測試如附件所示,請將 test 資料夾放到 "C:\test\" 進行測試 圖片 ▼ 如何執行 Macro ▼ Document1.docx 內容 ▼ 執行 TestOpenWord() 結果 如果執行 TestGetCurrentWorkingDirectory() 你應該會看到 "C:\test\" 程式碼 複製程式 Option Explicit ' Test getting current working directory and opening word files. ' ' Note: Add the following references: ' Microsoft Word XXX Object Library ' ' Author: Shawn Chang ' Tested on Excel 2010 and Word 2010 Private Type WordInstances wordApp As Word.Application wordDoc As Word.Document End Type Public Sub TestGetCurrentWorkingDirectory() MsgBox GetCurrentWorkingDirectory() End Sub Public Sub TestOpenWord() ' Open word instances by document path Dim documentPath As String Dim instances As WordInstances documentPath = GetCurrentWorkingDirectory() & "\Document1.docx" instances = OpenWord(documentPath) ' Get first paragraph text Dim firstParagraphText As String firstParagraphText = GetWordParagraphText(instances.wordDoc, 1) ' Show first paragraph text MsgBox firstParagraphText ' Close word instances CloseWord instances End Sub Private Function GetCurrentWorkingDirectory() As String GetCurrentWorkingDirectory = ActiveWorkbook.Path End Function Private Function GetWordParagraphText(doc As Word.Document, paragraphIndex As Integer) As String Dim docParagraph As Word.Paragraph Set docParagraph = doc.Paragraphs(paragraphIndex) GetWordParagraphText = docParagraph.Range.Text End Function Private Function OpenWord(docPath As String) As WordInstances Dim instances As WordInstances With instances Set .wordApp = CreateObject("Word.Application") Set .wordDoc = GetObject(docPath) End With OpenWord = instances End Function Private Sub CloseWord(instances As WordInstances) With instances .wordDoc.Close .wordApp.Quit Set .wordApp = Nothing Set .wordDoc = Nothing End With End Sub 參考 How to use Automation with Word 2002
x1 |