我想通过 VBA 在 WORD 文档的表格中放置单选按钮。具体来说,我想...
- 在第 x 列逐行放置三个单选按钮(每个单元格 3 个按钮)。
- 每个按钮不应有描述,只有按钮本身(仅按钮符号的大小)。
- 所有三个按钮/单元格应属于一个组。
- 整个过程要在每一行(循环)中完成。
我的问题是,我可以创建一个按钮/单元格,但我不能:a)删除描述文本和b)减小单选按钮的宽度(到按钮的大小)。
我使用 inlineshapes (ActiveX) 创建单选按钮。我使用“选择”选择 X 列中的相应单元格。
使用的操作系统/软件:Windows 10、MS WORD 2016
代码:
Sub add_rBtn()
Dim numberOfColumnsInCurrentTable As Integer
Dim currentTableIndex As Integer
Dim s As InlineShape
Dim c As Integer
On Error GoTo err
currentTableIndex = ActiveDocument.Range(0, Selection.Tables(1).Range.End).Tables.Count
MsgBox currentTableIndex
'MsgBox ActiveDocument.Tables(currentTableIndex).Columns.Count
For x = 2 To ActiveDocument.Tables(currentTableIndex).Rows.Count
ActiveDocument.Tables(currentTableIndex).Cell(x, 4).Select
With Selection
For y = 1 To 3
'MsgBox .InlineShapes.Count
c = 0
'.InlineShapes.AddOLEControl ClassType:="Forms.OptionButton.1"
Set s = .InlineShapes.AddOLEControl("Forms.OptionButton.1")
Next y
End With
Next x
Set s = Nothing
Exit Sub
err:
MsgBox err.Number & ": " & err.Description
End Sub
有人有解决建议吗?
提前谢谢了
答案1
我相信你想要类似的东西
For x = 2 To ActiveDocument.Tables(currentTableIndex).Rows.Count
ActiveDocument.Tables(currentTableIndex).Cell(x, 4).Select
With Selection
For y = 1 To 3
'MsgBox .InlineShapes.Count
c = 0
'.InlineShapes.AddOLEControl ClassType:="Forms.OptionButton.1"
Set s = .InlineShapes.AddOLEControl("Forms.OptionButton.1")
s.Width = 'set an appropriate value here
s.OLEFormat.Label = ""
Next y
End With
Next x
这应该可以解决尺寸和标签问题。但是,这样你就有 3 个单选按钮在框架之外,因此它们会彼此独立地运行。