ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 889|回复: 0

关于VBA重写word命令的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-7-25 08:34 | 显示全部楼层 |阅读模式
本帖最后由 ichjames 于 2017-7-25 08:35 编辑

请教各位大牛一个VBA的问题

在开发中我需要做一个这样的功能。 假设WORD中有 表格1 和 表格2。  需求是表格1 不允许做任何表格结构的变更,类似 增加列 增加行,删除列之类的操作。 而表2 则不做任何限制。
QQ图片20170725082524.png
要求是必须用VBA来实现。
目前我的做法是重写WORD的命令,代码如下
我遇到的问题是,当判断为是表格1时,能正常弹出禁止的提示。但是如果是表格2,则应该继续执行WORD原有的右侧插入列的逻辑。 目前我只能通过录制宏得知 word做了这样的操作 Selection.InsertColumnsRight。 虽然也能实现这样的功能。 但如果是其他按钮,例如“删除单元格”,“插入单元格”之类的有弹出框的, 又或者 “表格橡皮擦”这样的功能, 录制宏也无法得知具体的逻辑。

所以请问一下,VBA的这种重写word命令,是否有类似 执行被重写的原有逻辑的 功能?  

'右侧插入列
Sub TableInsertColumnRight()
    Dim custXML As String
    Dim curTableName As String
    custXML = GetCustXML()          '获取配置的的表格名
    curTableName = GetSelectedTableName()   '获得当前所选表格名

    '判断表格名,是否需要禁用按钮
    If custXML = curTableName Then
        MsgBox ("右侧插入列TableInsertColumnRight,该功能已禁用")
    Else
        Selection.InsertColumnsRight
    End If
End Sub



您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-12 19:59 , Processed in 0.016218 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表