2016-07-27 30 views
0

在与内联形状Word 2011交互时,是否有人在AppleScript中发布“更新”?Word,AppleScript - 使用内联形状的“更新链接格式”?

我有下面的代码块(主要是从Mac的Office 2004的AppleScript参考刷卡):

tell application "Microsoft Word" 
    repeat with aShape in (get inline shapes of active document) 
     if auto update of link format of aShape is false then 
      update link format of aShape 
     end if 
    end repeat 
end tell 

据我推测,这只是让内联形状,但对那些自动更新设置为false,它表示“从链接更新形状”。

我插入一个图像,确保将其链接到文件(比如说"/Users/me/Documents/myfile.png")。如果我要求Word在AppleScript中“给我一个内联形状和路径列表”,我会看到"/Users/me/Documents/myfile.png"。嗯不错。

然后我运行代码。

夫妇的事情发生了:

  1. auto update说,它的值丢失 - 我要检查missing value这似乎真的错了。我认为它应该是一个BOOL,但是......它只是零。
  2. 如果我检查缺失值 ,并忽略它(这可能是我的问题的一部分),我运行update link format的形状,形状的路径是完全删除。 所以在这一点上我的形状路径完全消失了 - 永远。图像仍在文档中,但路径/链接已被清除。

我得假设我在这里做错了事。

有没有人有任何建议,如何update link format正确?

预先感谢您

注:我正在写一个Cocoa程序,并选择加入我尝试纳入AppleScript的方法,因为对对象 - 应用程序对象一般的“更新”的方法似乎接受一个枚举而不是实际的目标......而且它似乎也没有做任何事情。

回答

1

事实上,我认为你没有做错任何事情,但我相信这需要一些技巧才能使这些东西有效,我对此并不完全确定。无论如何,评论的解释时间太长。

作为一般观察,在Word中,如果属性与该情况不相关,则倾向于获得missing value。所以我想如果你有一张没有任何链接的图片,link format of aShape将返回missing value

任何具有链接的形状应具有link format而不是 a missing value。但AFAIK auto update仅适用于链接到OLE对象的内联形状,在这种情况下,auto update的值可以是truefalse,但对于不是OLE链接的图像,auto update将是missing value

(在Word的早期版本中,大致上说链接的图像由字段代码表示。如果通过OLE链接,则字段类型为{LINK}。否则,如果它只是一个图片文件的链接,那么字段类型将是{INCLUDEPICTURE}。在最新版本的Word中,图形的处理不止一次发生了变化,如果您自己插入,或者如果将文档另存为.doc而不是.docx,通常只会看到这些字段代码)

或许你需要做的一件事是检查inline shapeinline shape type并根据类型调整处理。

AFAIK如果你有一个链接的OLE对象,那么使用update link format应该工作。但如果它是一个图片文件的链接,它不会。似乎起作用的是将图片的全名设置为其自身,例如,

set source full name of link format of aShape to source full name of link format of aShape 

除此之外的结果实际上是用带有消息的方框替换图片。但重复该命令实际上确实出现以更新链接,即

set source full name of link format of aShape to source full name of link format of aShape 
set source full name of link format of aShape to source full name of link format of aShape 
+0

哇 - _thank you_。我不知道你是怎么知道的。更新路径两次将得到它应用...我真的很感谢关于OLE /图像差异的解释 - 帮助我更多地了解更多关于“缺失的价值”,但它与我见过的其他一些东西的关系在AppleScript对象中。我的另一个外卖是“不要相信文档”。他们明确列出了路径/源全名属性为只读,但路径刚刚更新。不够感谢你。 – eww

+0

是的,这方面的一个大问题是,自从2004年版本以来,这些文档从未更新过,正如您发现我认为的那样。 – 2016-07-28 18:30:35

+0

我向其他一些人展示了“链接更新不会第一次使用?尝试两次”的例子,我认为我们的集体思想被吹捧了。我永远不会试图... – eww