热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

给WORD中的文本添加标记

想用VBA做一个WORD的访问控制,对于不同的用户显示不同的内容,不想给用户看到的内容则隐藏起来。所以需要对WORD中的文本添加标记,用于文本的显示或隐藏。Bookmark试过了,不能达到要求。但是一
想用VBA做一个WORD的访问控制,对于不同的用户显示不同的内容,不想给用户看到的内容则隐藏起来。所以需要对WORD中的文本添加标记,用于文本的显示或隐藏。Bookmark试过了,不能达到要求。但是一直找不到更好的办法。

新手,能给的加分有限,还望大家见谅。

不知道大家有没有别的办法,拜托大家了!谢谢! 

21 个解决方案

#1


我觉得用Word来做访问控制比较困难,

第一个是Word的对象中,除了窗体外,没有明显可用的show或者hide方法。
另一个方法就是用VBA直接把不能看到的内容删除,这个就要求打开时执行VBA脚本,
但如果用户禁用VBA就没有办法了。

个人想法,仅参考。

#2


呵呵,不管怎样,先多谢了。的确是在用VBA做访问控制。一直没有找到有效的办法。如果把不能看的内容删除话,那该内容的创建者也没有办法看到吧。

#3


删除了可以不保存啊,只是查看不到而己

另外楼主的实际应用是什么样的呢,如果只是控制流程,我觉得InfoPath更适合楼主,虽然我用的少。

#4


选中文字

格式菜单-字体-勾选隐藏文字即可

#5


回复 大河马

实际应用是做一个WORD ,可由多个用户登陆,每个用户只能看到自己创建的段落和别人允许他看的段落。所以想给每个段落加标记,记录每个用户创建的段落和可以查看的段落。

#6


好的,了解了,

#4楼已经给了一个思路,看起来不错,

楼主继续研究一下吧,有问题可以继续交流

#7


回复 大河马,教之初
  
嗯,实现时的确要像教之初所说隐藏文字。
总之,很谢谢两位!

#8


这个实现起来有些困难。word也不适合这么干。

把每个人可以编辑的段落起始和结尾用固定的标识进行标记,然后在打开DOCUMENT的时候通过用户名进行判断,进行隐藏或者显示。这个可以不?先录个宏试试。

帮你顶一下。

#9


回复:小乱乱
 
谢谢先,呵呵
目前思路就和你说的差不多。就是不知道选择什么去标记。

#10


在Word中用户去选择显示隐藏文字不是都看见了。

#11


引用 9 楼 mousejing 的回复:
回复:小乱乱

谢谢先,呵呵
目前思路就和你说的差不多。就是不知道选择什么去标记。


标记可以自定义啊.固定的字符串就可以,比如[用户名]段落结尾[/用户名]

还有一种思路就是把该用户不能看的区域字体颜色变为背景,然后将不能编辑区域进行保护。呵呵,我觉得这个应该比较简单。录个宏先看看代码,然后加入用户和段落的判断,理论上可行。
继续研究。

#12


不能看的区域字体颜色变为背景

#13


回复:小乱乱

嗯,很有道理。想问一下,对于标记也应该要保护起来吧。为了让它无法编辑除了用文档保护的办法,还有别的办法吗

#14


我能想到的还有个办法,就是使用文本框。不过这样好像不太好设置格式,而且整体文章太长的话也不太适合。但是隐藏或者只读比较好实现。不知道高手还有没有更好的方法。

帮你顶下吧。看看高手的思路。


#15


如果用于对初中级用户进行简单限制,那么我说的隐藏文字足够用了,毕竟绝大多数的用户并非专业office使用者,不太可能深入去研究文档。另外隐藏文字的效果非常好,从外观看没有任何的痕迹,即便【默认】使用vba遍历段落也不能发现。

如果楼主需要更加安全的方式,使用word那是开玩笑呢,也根本做不到。

#16


回复 教之初

用户登陆时的确要隐藏他无法查看的段落。我现在想做的是给每个段落加标记,记录每个人可看的段落标记,确定登陆后显示哪些段落,隐藏哪些段落。

#17


改变字体、颜色、字号等等属性均可标记

#18


用标签比较好

#19


你说的标签可以具体一点吗?

#20


是书签不是标签

对每一个要显示或隐藏的段落设定一个书签,然后根据书签进行隐藏或显示隐藏的操作,具体自己录制个宏试试吧。

#21


书签就是bookmark吧。试过这个了,但是在应用中还是有问题。不管怎样,还是很感谢哦。

推荐阅读
  • 本文介绍了Java高并发程序设计中线程安全的概念与synchronized关键字的使用。通过一个计数器的例子,演示了多线程同时对变量进行累加操作时可能出现的问题。最终值会小于预期的原因是因为两个线程同时对变量进行写入时,其中一个线程的结果会覆盖另一个线程的结果。为了解决这个问题,可以使用synchronized关键字来保证线程安全。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • SpringBoot uri统一权限管理的实现方法及步骤详解
    本文详细介绍了SpringBoot中实现uri统一权限管理的方法,包括表结构定义、自动统计URI并自动删除脏数据、程序启动加载等步骤。通过该方法可以提高系统的安全性,实现对系统任意接口的权限拦截验证。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了新款奇骏的两个让人上瘾的功能,分别是智能互联系统和BOSE音响。通过对新款奇骏的配置和功能进行评测,探讨了这两个新增功能的使用体验和优势。此外,还介绍了新款奇骏的其他配置和改进,如增加的座椅和驾驶辅助系统,以及内饰的舒适性提升。对于喜欢音响的消费者来说,BOSE音响的升级也是一个亮点。最后,文章提到了BOSE音响的数字还原能力,以及7座版无法配备BOSE音响的原因。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • Pycharm编辑器取消双击shift弹出搜索框的方法
    在使用Pycharm编辑器时,双击shift会弹出搜索框界面,导致输入失去焦点,给用户带来不便。本文介绍了取消双击shift弹出搜索框的方法:在Pycharm中双击shift,输入registry并回车,找到“ide.suppress.double.click.handler”并勾选后,关闭即可解决该问题。通过这个方法,你再也不会被shift问题困扰了。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
author-avatar
jrs2078148
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有