广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

    如何用VBA向Word中添加CheckBox控件并修改属性

    来源:网络收集  点击:  时间:2024-03-14
    【导读】:
    有时候,我们需要批量的向office2007版的Word中添加相同属性的复选框控件,那么如何用VBA向Word中添加CheckBox复选框控件。本例中使用的是office2007版的Word,高版本相同,低版本自己去试试。工具/原料more2007版office的Word文档方法/步骤1/6分步阅读

    新建Word,在开发工具栏里面点开录制宏,选择自己喜欢的操作方式,这里将宏指定到键盘,然后键入一组新快捷键。点击指定,然后手动添加一个CheckBox复选框。停止录制,打开Visual Basic编辑器,进入刚才录制宏的代码块。如下图

    2/6

    里面非常重要的一句话,第二句:Selection.InlineShapes.AddOLEControl ClassType:=Forms.CheckBox.1

    这句就是向Word文档中添加CheckBox复选框的语句。第一句是选中当前文档的。

    这里,我们可以直接调用ActiveDocument的InlineShapes方法,向当前文档中添加控件。

    代码如下,

    Set x = ActiveDocument.InlineShapes.AddOLEControl(Forms.CheckBox.1) ‘新建一个复选框并将此复选框赋值给x变量。

    3/6

    然后我们可以用复选框的.OLEFormat.Object方法来改变他的属性。

    这里比如改变他的名称为您好,宽度为100.用with语句如下

    Set x = ActiveDocument.InlineShapes.AddOLEControl(Forms.CheckBox.1)

    With x.OLEFormat.Object

    .Caption = 您好

    .Width = 100

    End With

    4/6

    这里我们用Do While······Loop语句来实现批量添加。

    Dim x

    Do While False

    Set x = ActiveDocument.InlineShapes.AddOLEControl(Forms.CheckBox.1)

    With x.OLEFormat.Object

    .Caption = 您好

    .Width = 100

    End With

    Selection.MoveRight Unit:=wdCharacter, Count:=1

    Loop

    5/6

    下一步,将要添加复选框的词组组成一个字符串,这里用“、”隔开。如:

    头痛、偏头痛、心绞痛、坐骨神经痛、痛、其它痛

    通过下面语句分别赋值给复选框的Caption属性,并将字符串的长度赋值给width属性。通过下面语句,语义见注释:

    Sub 宏2()

    宏2 宏

    Dim str1, str2 As String

    Dim len1, len2 As Integer

    Dim x

    str1 = 、头痛、偏头痛、心绞痛、坐骨神经痛、痛、其它痛

    str1 = StrReverse(str1)

    反转字符串,因为每次新建复选框都是新建在第一个

    Do While Len(str1) 0

    判断字符串是否取完。

    len1 = InStr(str1, 、)

    取出第一个“、”出现的位置。

    str2 = Mid(StrReverse(Left(str1, len1)), 2)

    取出字符串中最后一个“、”后面的字符串并反转。

    If str2 = Then str2 = Mid(StrReverse(str1), 2)

    如果“、”取完了,剩下的就是最后一组。

    len2 = Len(str2) * 10 + 25

    预定复选框的宽度,根据字符串长度

    Set x = ActiveDocument.InlineShapes.AddOLEControl(Forms.CheckBox.1)

    With x.OLEFormat.Object

    .Caption = str2

    .Width = len2

    End With

    Selection.MoveRight Unit:=wdCharacter, Count:=1

    str1 = Right(str1, Len(str1) - len1)

    去除已经加复选框的字符串

    Loop

    End Sub

    6/6

    以上完成后回到文档快捷键运行即可,如果出现问题,建议通过F8逐行运行调试。

    VBA-CheckBox
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.ff371.cn/art_353358.html

    ©2019-2020 http://www.ff371.cn/ 国ICP备20009186号06-23 09:48:18  耗时:0.030