Office2010 在设计模式下使用内容控件OR ActiveX控件

本文介绍在Word文档中使用内容控件(ContentControls)和ActiveX控件实现CheckBox功能的方法,并对比两者性能差异,推荐使用OpenXML SDK提升处理速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在WORD文档(docx)中插入CheckBox实现让用户选择的功能。

插入CheckBox有两种方法

1.内容控件(Content Controls)

使用VBA访问

Public Sub test()
    Dim ctrl As ContentControl
    For Each ctrl In ActiveDocument.ContentControls
        If ctrl.Type = wdContentControlCheckBox Then
            ctrl.Checked = Not ctrl.Checked
            MsgBox ctrl.Tag '属性中的标记
            MsgBox ctrl.Title '属性中的标题
            
        End If
        
    Next
End Sub

2.ActiveX控件

使用VBA访问

Public Sub test()

Dim Obj As InlineShape
For Each Obj In ActiveDocument.InlineShapes
    If Obj.Type = 5 Then
        If Obj.OLEFormat.ClassType Like "*.CheckBox.*" Then Debug.Print Obj.OLEFormat.Object.Caption
    End If
Next Obj
End Sub

一开始LD使用第二种方法的CheckBox,文件少的时候没发现什么问题。就是发现打开的docx文件的时间特别长,大概得有二十几秒,其实才207K的文档。

使用内容控件代替ActiveX相同个数的CheckBox,使用内容控件也就2-3秒而且文件尺寸小很多。

更快的使用OpenXML SDK,他是直接打开文件而不解析计算里面的公式等等WORD的功能因此性能会比VBA脚本的快很多。

OpenXML SDK性能还是不能满足那就趁早使用数据库吧,不要浪费时间了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值