首页 > 解决方案 > 如何使用 VB 脚本保存 Word 文档?

问题描述

我需要定期从一组 Word 文档中删除所有自定义属性。

我可以使用 VB 脚本打开一个 Word 文档并浏览自定义属性并删除它们。但是,以某种方式保存文档不起作用。这是我正在使用的代码:

'RemoveCustomProperties.vbs
Option Explicit
dim objWord
dim WordDoc
dim CProp
dim StdOut 'Just for debugging output

set StdOut = CreateObject("Scripting.FileSystemObject").GetStandardStream(1)

Set objWord = WScript.CreateObject("Word.Application")

objWord.Documents.Open WScript.Arguments.Item(0)
objWord.Visible = true 

for each WordDoc in objWord.Documents

  stdout.writeline "Before:"
  'go through all custom properties, list them and delete them

  for each CProp in WordDoc.CustomDocumentProperties
    stdout.writeline cprop.name & "=" & cprop.value
    CProp.delete
  next

  stdout.writeline "Afterwards:"
  'go through all custom properties again, none are there as expected
  for each CProp in WordDoc.CustomDocumentProperties
    stdout.writeline cprop.name & "=" & cprop.value
  next

next

objWord.Documents.Save
objWord.Quit

set StdOut = Nothing
Set objWord = Nothing

我使用以下简单语法从 Windows CMD 调用它:

cscript <path-to-vbs>\RemoveCustomProperties.vbs <WordFile>.docm

Word 文档包含一个名为 MYPROP 的自定义属性,值为“Mist”。

word文件弹出并再次关闭。在 CMD 窗口中,您可以阅读:

Microsoft (R) Windows Script Host, Version 5.812 Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.

Before:
MYPROP=Mist
Afterwards:

当我在同一个文件上再次运行它时,我得到了相同的结果。自定义属性被列出并被删除。但是该文档显然没有保存。

我错过了什么?

标签: vbscriptsaveword

解决方案


推荐阅读