2016-07-27 60 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