嗨,Scripting Guy!我如何將用戶名插入 Microsoft Word 文檔的頁腳?
-- RR
您好,RR。這是一個有趣的問題,這可能是我們收到的第一個有關“我如何將用戶名插入 Word 文檔的頁腳”的問題。(不是可能,是千真萬確的?。┎还茉趺凑f,讓我們看看能不能為您找到一種答案吧。再說,這也給了我們一個厚著臉皮宣傳即將推出的Scripting Week 2 網絡廣播系列的機會。在為該周安排的 10 個網絡廣播中:If You Want Something Done Right, Let Microsoft Office Do It For You(如果您想把事情做好,請讓 Microsoft Office 來幫助您)是一個計劃介紹如何使用腳本編寫 Microsoft Office 應用程序的網絡廣播。如果您對使用腳本編寫 Word、Excel 和/或 PowerPoint 感興趣,那么這可能需要 90 分鐘的時間。
當然,現(xiàn)在您想做的只是將用戶名插入 Word 文檔的頁腳。沒問題!實際上,我們將為您提供兩種不同的執(zhí)行此操作的方法。
作為 Microsoft 腳本專家,我們的大部分時間都用在幫助系統(tǒng)管理員編寫 VBScript 腳本上。因此,讓我們首先為您介紹一種從 .vbs 文件執(zhí)行此任務的方法。下面這個腳本先確定登錄用戶的名稱,啟動 Word 實例,創(chuàng)建新文檔,然后設置該登錄用戶名稱的文檔頁腳文本:
Set objNetwork = CreateObject("Wscript.Network") strUser = objNetwork.UserNameSet objWord = CreateObject("Word.Application") objWord.Visible = True Set objDoc = objWord.Documents.Add()objDoc.Sections(1).Footers(1).Range.Text = strUser objDoc.Sections(1).Footers(1).Range.ParagraphFormat.Alignment = 1
什么,您原以為很大、很長、很復雜?實際上,正如這個特定的示例所演示的那樣,使用腳本編寫 Microsoft Word 相當容易。在此腳本中,前兩行代碼使用 WSH Network 對象獲取登錄用戶的名稱,然后將該名稱存儲在變量 strUser 中。隨后的三行代碼創(chuàng)建 Microsoft Word 實例,使該實例在屏幕上顯示,然后給我們提供一個可以使用的空白文檔。
這時,我們只需要一行代碼來設置頁腳文本:
objDoc.Sections(1).Footers(1).Range.Text = strUser
稍微解釋一下,頁腳是與文檔的特定部分相關聯(lián)的。因為此文檔只有一個部分,所以我們將它指定為“Sections(1)”。“Footers(1)”表示我們要將文本添加給該部分中的主頁腳,“Range.Text”說明我們要設置頁腳的“文本”屬性。當然,strUser 是登錄用戶的名稱。就這些,這就是全部所需要的腳本。
不過,我們最后添加了一行代碼,該行代碼使頁腳在頁面上居中顯示,這只是為了好玩。這有什么不好呢?
當然,您很有可能不希望從 .vbs 文件執(zhí)行此方法,而是希望將此代碼作為 Word 宏使用。在這種情況下,請使用類似以下代碼的宏腳本:
Sub FooterAdder()Set objNetwork = CreateObject("Wscript.Network") strUser = objNetwork.UserNameThisDocument.Sections(1).Footers(1).Range.Text = strUser ThisDocument.Sections(1).Footers(1).Range.ParagraphFormat.Alignment = 1 End Sub
這里,我們有一個名為“FooterAdder”的子例程,該子例程獲取登錄用戶的名稱并使該名稱成為文檔頁腳。請注意,我們不需要創(chuàng)建 Word 實例;如果您正在運行 Word 宏,我們將假定 Word 已在運行。此外,此代碼不創(chuàng)建新文檔,它只是將頁腳添加到當前文檔中。“ThisDocument”所指示的就是頁腳。
順便提一句,我們知道人們對使用腳本編寫 Office 應用程序有很大的興趣,而且這種興趣在 Scripting Week 2 播出之后很可能有增無減。因此請您在二月份關注“腳本中心”。在該月的某個時間,我們計劃推出一個新部分(“Office Space”),專用于討論 Microsoft Office 方面的腳本編寫。同時,請告訴我們您另外還有哪些關于 Office 的問題。從現(xiàn)在起到 Office Space 推出這段時間內,我們將嘗試回答我們收到的一些問題。