近來需要編輯一個文檔,其中有一個問題,就是把表格都設置爲100寬,因爲表格很多,處理很麻煩,於是就打算學下vba,把表格處理好.
把內容存下來用於後續參考。
宏的簡單操作
宏一個實用操作就是 錄用-> 執行,
比如,設置ctrl+shift+b 就自動 插入一個只有一列的表格,具體可參考:
https://jingyan.baidu.com/article/ea24bc39ba09dcda62b331fa.html
查看錄製宏的vba腳本
視圖->宏->查看宏
->編輯
Sub 宏2()
'
' 宏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中的所有表格都設置成 指定寬度.