我試圖從Word中的所有命令按鈕保存一些值,然後刪除它們,然後再次將它們添加回來。刪除文檔中的所有命令按鈕並將它們再次添加回來
這是用於印刷目的。
我的問題是如何循環所有命令按鈕來保存它們的頂部,左側,名稱和寬度值,然後如何刪除它們,然後如何創建帶有先前名稱,寬度和位置的新按鈕。
我知道如何創建數組和什麼,我需要弄清楚的是循環通過命令按鈕和添加新的命令按鈕與舊值的語法。
我試圖從Word中的所有命令按鈕保存一些值,然後刪除它們,然後再次將它們添加回來。刪除文檔中的所有命令按鈕並將它們再次添加回來
這是用於印刷目的。
我的問題是如何循環所有命令按鈕來保存它們的頂部,左側,名稱和寬度值,然後如何刪除它們,然後如何創建帶有先前名稱,寬度和位置的新按鈕。
我知道如何創建數組和什麼,我需要弄清楚的是循環通過命令按鈕和添加新的命令按鈕與舊值的語法。
沒有測試的代碼,但應在以往任何時候需要
刪除命令按鈕
For Each o In ActiveDocument.InlineShapes
If o.OLEFormat.Object.Name = "CommandButtonName" Then
'Save all properties of the command button using .Top, .Left, .Width etc
o.Delete
End If
Next
添加命令按鈕稍加修改工作(檢查http://support.microsoft.com/kb/246299):
'Add a command button to a new document
Dim doc As Word.Document
Dim shp As Word.InlineShape
Set doc = Documents.Add
Set shp = doc.Content.InlineShapes.AddOLEControl(ClassType:="Forms.CommandButton.1")
shp.OLEFormat.Object.Caption = "Click Here"
shp.OLEFormat.Object.Left = 100
shp.OLEFormat.Object.Top = 100
shp.OLEFormat.Object.Width = 255
shp.OLEFormat.Object.Visible = True
我想通過調整命令按鈕到0x0親提供了一個更優雅的選項,不需要陣列,速度更快。
你不應該使用那種循環來刪除進程。如果要刪除某些類型的所有元素,請始終使用'For I ... Step -1'! –