解决Office 365 Word "无法创建宏"

今天遇到了Office 365 Word无法创建宏的问题,具体表现为:

  1. 在宏窗口中点击创建时会弹出“无法创建宏”的提示。

2. 对于已有的全局宏(在Normal.dotm中的宏)点击运行以后,宏窗口就关闭了,没有任何反应。

在文件-选项-信用中心启动了所有宏,但是仍然不起作用。

最后发现问题原因可能是Normal.dotm文件损坏。但是由于VBA的代码没有备份,需要从Normal.dotm里面把VBA拷出来。如果不需要这些代码的话,可以直接删除Normal.dotm文件

解决方法如下(需要python):

  1. 首先将C:\Users\<用户名>\AppData\Roaming\Microsoft\Template\Normal.dotm文件拷贝至某个工作目录
  2. 将其重命名为Normal.zip并解压
  3. 解压后的文件结构大概是这样
$ ls Noraml/
[Content_Types].xml* _rels/               docProps/            word/

VBA项目就在word/vbaProject.bin中 ,现在需要从中提取出VBA代码,这里就需要用Python了

4. 安装oletools

$ sudo -H pip install -U oletools

5. 用oletools提取vbaProject.bin即可得到VBA代码。

$olevba3  word/vbaProject.bin 

6. 最后将原来的Normal.dotm删除即可正常使用宏。

相关问题:

无法创建宏answers.microsoft.com图标

编辑于 2019-02-18