2011-08-08 54 views
4

在Word 2007中,「插入」功能區選項卡具有帶有單個下拉按鈕(標記爲「表格」)的「表格」組。我可以在Word 2007中更改插入表格命令的行爲嗎?

下拉列表包含各種菜單項,如「插入表格...」,「繪製表格」等。但是,在下拉列表頂部有一個10x8的網格,您可以使用它快速選擇使用鼠標的新表格的大小。 (第一個問題:這個東西叫什麼?!!)。

我想重寫默認行爲,以便當用戶使用上述小部件「繪製」表格時,我可以更改表格中使用的段落樣式(也可以執行其他一些清理) 。

我知道如何覆蓋「Insert Table ...」命令,但我無法弄清楚如何覆蓋「小部件」的行爲。可以做到嗎?

+0

從我所知道的你不能。您可能想要更改Table Normal樣式,以便任何新插入的表格都可以獲得您的樣式。 –

+0

@ 0xA3:我對Table Normal進行了一些更改,但問題在於表格樣式不允許您設置段落樣式。您可以更改格式的各個方面,但不適用於樣式。 (見http://www.shaunakelly.com/word/styles/custom-table-styles-2002-2003.html)。 –

回答

3

在你閱讀之前(因爲這會很長),我想說我沒有解決這個問題。然而,在我試圖解決 - 然後解決 - 這個問題時,我發現了很多事情,我在這裏記錄下來,希望他們能幫助別人找到解決方案。

在試圖確定什麼控制可用於插入表的10x8網格時,我發現了名爲「TableInsertGeneral」的Word命令中列出的宏。

TableInsertGeneral listed in Word Macros dialog box

這個宏,根據蘇珊S. Barnhill,如果將這一功能停止在早期版本的Word(Insert Table Drop Down Missing)的運作恢復電網。宏,因爲它存在於Word 2007/2010中,無法從宏對話框的「運行」按鈕中執行。雙擊該命令將關閉該對話框,但不會公開執行其他任何操作。我另外試圖通過創建一個名爲TableInsertGeneral的VBA子集來攔截它的函數,但是當我訪問這個網格時,我放入這個子集的代碼似乎沒有被執行。然而,根據我的研究,我相信TableInsertGeneral宏與顯示10x8網格有一些聯繫。

我也嘗試通過更改Word功能區中的表格庫來解決該問題。因爲我無法直接訪問控制網格的任何代碼,所以我試圖隱藏表格庫,然後將其替換爲排除網格功能的重建庫(從而允許段落樣式和其他更改全局工作)。

首先,我下載了一些工具:

使用Microsoft Office的自定義UI編輯器(允許編輯customui。在Word 2007文檔或模板中的XML文件,而不需要創建的文件夾結構或維護XML文件之間的關係),我開了一個模板,並在文件中保存此代碼:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> 
<ribbon> 
    <tabs> 
    <tab idMso="TabInsert"> 
     <group idMso="GroupInsertTables" visible="false" /> 
     <group id="CustomGroupInsertTables" label="Tables" insertBeforeMso="GroupInsertIllustrations"> 
     <gallery id="CustomTableInsertGallery" 
     label="Table" 
     imageMso="TableInsertGallery" 
     size="large" 
     columns="1" 
     rows="4" 
     screentip="Table" 
     supertip="Insert or draw a table into the document." 
     keytip="T" 
     onAction="RibbonControl.galleryOnAction" > 
     <item id="GridMessage" label="Draw Table Via Grid Has Been Removed" imageMso="TablesGallery" 
     supertip="Provides information on why this template has different Ribbon controls."/> 
     <button idMso="TableInsertDialogWord" /> 
     <button idMso="ConvertTextToTable" /> 
     <button idMso="TableExcelSpreadsheetInsert" /> 
     </gallery> 
    </group> 
    </tab> 
    </tabs> 
</ribbon> 
</customUI> 

這成功地隱瞞了原始表畫廊和更換它具有原始表格庫的一些功能。 10x8網格消失了,但我無法恢復繪製表切換按鈕和快速表庫。據我所知,XML模式不允許將其中任何一個(存在於Word 2007的現成版本中)嵌入到現有的庫中。因爲我不喜歡去除功能(即使是在這個部分解決方案,這是我沒有想到會被採用),我添加一個按鈕綁在消息框作爲重建庫中的第一項:

Rebuilt Tables Gallery

連接新的代碼「繪製表格通過電網已被刪除」按鈕被放在一個名爲RibbonControl模塊:但是

Sub GalleryOnAction(Control As IRibbonControl, selectedID As String, selectedIndex As Integer) 

If Documents.Count = 0 Then 
MsgBox "This control is disabled when there is no active document." 
Exit Sub 
End If 

Select Case Control.id 
    Case "CustomTableInsertGallery" 
    Select Case selectedIndex 
     Case 0 
     MsgBox "Explain changes to Ribbon interface here." 
     Case Else 
     'Do Nothing 
    End Select 
End Select 
End Sub 

我不希望任何人使用這個解決部分問題,如果恢復的手段兩個失蹤的控制可以實現,這可能是一個很好的解決方法。順便說一句,我適應這個最格雷格馬克西網站:

Customizing the Ribbon

如果你讀到這裏,謝謝!而且我希望你能以自己的努力取得更大的成功。

+0

我打算在總結爲「否」的基礎上接受這個優秀的,全面的答案:-) –

相關問題