WORD/VBA:通过 VBA 要求逐行设置单元格中的一组单选按钮

WORD/VBA:通过 VBA 要求逐行设置单元格中的一组单选按钮

我想通过 VBA 在 WORD 文档的表格中放置单选按钮。具体来说,我想...

  1. 在第 x 列逐行放置三个单选按钮(每个单元格 3 个按钮)。
  2. 每个按钮不应有描述,只有按钮本身(仅按钮符号的大小)。
  3. 所有三个按钮/单元格应属于一个组。
  4. 整个过程要在每一行(循环)中完成。

我的问题是,我可以创建一个按钮/单元格,但我不能: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 个单选按钮在框架之外,因此它们会彼此独立地运行。

相关内容