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

、これはただのインライン図形を取得し、それらのための場所を自動updateがfalseに設定されている場合は、「リンクからシェイプを更新する」と表示されます。

私は画像を挿入し、ファイルにリンクしていることを確認しています(これは"/Users/me/Documents/myfile.png"としましょう)。 AppleScriptの「インラインシェイプとそのパスのリスト」をWordに依頼すると、"/Users/me/Documents/myfile.png"が表示されます。うんいいね。

次にコードを実行します。物事の

カップルが起こる:

  1. auto updateは、その値が欠落していると言う - 私は本当に間違っているようだmissing valueを確認する必要があります。私はそれがBOOLであると考えられているが、それは集める。
  2. 私は値 が欠落に対してチェックし、ちょうど(私の問題の一部かもしれない)と私は形状にupdate link formatを実行して、シェイプのパスが完全であるを削除し、それを無視した場合。 この時点で私の形の道は完全になくなってしまった。画像はまだ文書に残っていますが、パス/リンクはゼロになっています。

私はここで何か間違っていると仮定しなければなりません。

update link formatにはどのような提案がありますか?私はココアのアプリを書いているとのObj-Cアプリケーションオブジェクトのための一般的な「更新」の方法は、列挙型を受け入れるように見えたので、AppleScriptのアプローチを取り入れしようことを選択しています:

は、事前に

注意をありがとう実際のオブジェクトではなく...そして、それはまったく何もしないように見えました。

答えて

1

実際、私はあなたが何か間違っているとは思わないが、私はそれが仕事をするためにトリックを取ると信じて、それについて完全にはわかっていない。いずれにしても説明が長すぎるとコメントになります。

一般的な見解として、Wordでは、その場合にプロパティが関連しない場合にmissing valueを取得する傾向があります。だから私はあなたがリンクを持っていない写真を持っていると思います、link format of aShapemissing valueを返すでしょう。

link formatは、でなく、であり、missing valueである必要があります。しかし、AFAIK auto updateは、OLEオブジェクトへのリンクであるインライン図形にのみ適用されます。この場合、auto updateの値はtrueまたはfalseになる可能性がありますが、OLEリンクではない画像の場合はとなります。

(以前のバージョンのWordでは、おおよそにリンクされた画像はフィールドコードで表されていました。OLEを介してリンクされている場合、フィールドタイプは{LINK}になります。それ以外の場合は、画像ファイルへの単なるリンクであれば、フィールドタイプは{INCLUDEPICTURE}になります。最近のバージョンのWordでは、グラフィックスの処理が2回以上変更されています。通常、フィールドコードは自分で挿入するか、.docxではなく.docとして保存すると表示されます)

だから、あなたがする必要があるのは、inline shapeのをチェックして、タイプに応じて処理を調整することです。

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

Wow - _thank you_です。私はあなたがそれをどのように考え出したのか分かりません。パスを2回更新すると適用されます...私はOLE /イメージの違いについての説明に本当に感謝しています - 私が見た他のもののいくつかとの関係AppleScriptオブジェクト内にあります。私の他の奪い取りは、 "ドキュメントを信頼しないでください"です。彼らは明示的にパス/ソースフルネームのプロパティを読み取り専用としてリストしていますが、パスは更新されたばかりです。十分にあなたに感謝することはできません。 – eww

+0

はい、この分野の大きな問題は、私が思ったように、2004年版以降にドキュメントが更新されたことがないことです。 –

+0

「リンクの更新は初めてではありませんか?2回試してください」という例をいくつか紹介しました。私たちの集団的な心は吹き飛んだと思います。私は決してそれを試してみませんでした... – eww

関連する問題