word的宏_vba統一設置表格寬度

近來需要編輯一個文檔,其中有一個問題,就是把表格都設置爲100寬,因爲表格很多,處理很麻煩,於是就打算學下vba,把表格處理好.
把內容存下來用於後續參考。

宏的簡單操作

宏一個實用操作就是 錄用-> 執行,
比如,設置ctrl+shift+b 就自動 插入一個只有一列的表格,具體可參考:
https://jingyan.baidu.com/article/ea24bc39ba09dcda62b331fa.html

查看錄製宏的vba腳本

視圖->宏->查看宏
這裏寫圖片描述

->編輯


Sub2()
'
' 宏2 宏
'
'
    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=8, NumColumns:= _
        1, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
    With Selection.Tables(1)
        If .Style <> "網格型" Then
            .Style = "網格型"
        End If
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = False
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = False
        .ApplyStyleRowBands = True
        .ApplyStyleColumnBands = False
    End With
End Sub

上面的內容如果沒怎麼了解語法,可能看不懂,但更多都是table對象的操作,可參考api

可查看word 相關對象的方法(感覺這個網站操作不太便捷,建議在vba的編輯界面,可視圖->對象瀏覽器 查看相關對象.)
https://msdn.microsoft.com/zh-cn/vba/word-vba/articles/table-applystyleheadingrows-property-word

自己寫一個vba腳本

設置所有的table爲100的腳本


Sub table_100()
'
'  宏
'
',
    Dim tempTable As Table
    Application.ScreenUpdating = False

    '判斷文檔是否被保護
    If ActiveDocument.ProtectionType = wdAllowOnlyFormFields Then
        MsgBox "文檔已保護,此時不能選中多個表格!"
        Exit Sub
    End If
    '刪除所有可編輯的區域
    ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
    '添加可編輯區域
    For Each tempTable In ActiveDocument.Tables
        tempTable.Range.Editors.Add wdEditorEveryone
        tempTable.PreferredWidthType = wdPreferredWidthPercent
        tempTable.PreferredWidth = 100
    Next
    '選中所有可編輯區域
    ActiveDocument.SelectAllEditableRanges wdEditorEveryone
    '刪除所有可編輯的區域
    ActiveDocument.DeleteAllEditableRanges wdEditorEveryone
    Application.ScreenUpdating = True
End Sub

宏->查看宏->填好名字後,創建
這裏寫圖片描述

把上面的腳本填上去, 這個腳本 是把表格設置成 100,可把100設置成其它值,然後按 運行,即可把word中的所有表格都設置成 指定寬度.
這裏寫圖片描述

發佈了62 篇原創文章 · 獲贊 17 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章