转自该博客:
https://www.cnblogs.com/1024th/p/10990607.html
并补充修改原文没有的 Microsoft Office遇到自定义宏要求数字签名的问题。
归纳总结
这个问题自Word 2007开始就存在,直至我目前用的Word 2016都没有被修复。
原因推测
Office工程师在设计时存在问题,在公式编辑器内键入文本时,如果当前输入法的语言不是英语的话,默认键入的是普通文本,不斜体。注意,使用微软拼音输入法的英文模式也被认为语言不是英语,只有按Win+空格键切换到ENG英语(美国) 美式键盘时,才被认为是英语。
解决方法
(1)最佳方法:使用宏。
1.word-视图-宏-查看宏-创建
2.自己随便输入一个宏名,比如就叫InsertEqua,然后将
Sub InsertEqua()
Selection.OMaths.Add Range:=Selection.Range
Selection.OMaths(1).ConvertToMathText
Selection.OMaths(1).ConvertToMathText
End Sub
这几行代码复制到里边去。注意这里会根据你起的宏名称自动生成Sub和End Sub这部分,所以真正复制的部分是中间的3行。
–此处对原文操作进行修改—
现在的Offfice2016添加自定义宏要数字签名了。如果要避免出现“没有可用的签名证书,或与管理员联系取得安全证书”的问题。可以通过先设置自定义选项卡,再对自定义选项卡设置键盘快捷方式的方式来避免数字签名。
前提:已经写好宏代码
①文件-选项-自定义功能区-宏。左边选中InsertEqual的宏代码。
②右边:主选项卡-开始-新建组-重命名:斜体公式;选中斜体公式
③点击【添加】,InsertEqual添加到了【斜体公式】的组中,然后点击重命名,再对InsertEqual进行重命名。
如图所示:
④选中【斜体公式】,点击【键盘快捷方式】-【自定义】,见到【文件选项卡】后,往下拉进度条,选择【宏】-【InsertEqual】。请按新快捷键里面输入【Alt+W】,点击指定。
从图中可以看出,【说明】处没有要求指定“数字签名”,这样才能为自定义宏设置快捷键。
原理解释(参考Mordecai的回答):
Word的公式有:专业型/线型和普通文本/数学文本等4种状态,但在公式设计菜单下只显示了专业型/线型和普通文本三种。在普通文本(NormalText)状态下,公式为非斜体的;在数学文本(MathText)状态下,为斜体。可笑的是,由于Bug的存在,刚开始我居然认为它没有用处。现在我知道,在Word中插入公式时,默认状态下是MathText的,但由于Bug的存在,公式并不斜体,所以在选中公式后,需要点击两次“普通文本”才能完成斜体(第一次把公式变为NormalText,第二次才真正变为MathText)。如果每次插入公式时都要再点击两次“普通文本”,还不如直接按Ctr+I了(当然Ctr+I会把所有的文本都搞成斜体的,也不方便)。为避免麻烦,我们可以用宏。(注意:使用了两次ConvertToMathText并非笔误,而是必需的)