このコードを使用して上記の問題を解決しました
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.View.CurrentShowPosition = 2 Then
ActivePresentation.UpdateLinks
End If
End Sub
ショーに 2 つのスライドがあると仮定すると、スライド 2 をパスすると更新リンクがトリガーされ、更新された OLE リンクでスライド 1 にループバックします。この部分にたどり着くまでに多くの読書が必要でしたが、ショーを開始すると実行できません。コードがすべてのスライド 2 をループするように、手動で Alt+F8 を押して [実行] をクリックする必要があります。
編集:マクロを一度も実行せずに、最終的に機能するようになりました。パワーポイントを開いてショーを再生するだけです。更新は、ショーがスライド 2 または最初のスライドを通過したときに動的に更新されました。現在、この問題の解決策がまだないものもあります。これがお役に立てば幸いです。
ここhttp://skp.mvps.org/autoevents.htmにある autoevent.zip を利用しました。zip に含まれている AutoEvents.ppa をアドインとしてインストールし、PPT2007 と PPT2003 で有効にしました。次に、このコードで通常のモジュール/マクロを作成しました。
Sub Auto_ShowBegin()
ActivePresentation.UpdateLinks
End Sub
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
'
' AUTO UPDATE OF OLE LINKS MACRO
'
If SSW.View.CurrentShowPosition = 2 Then
ActivePresentation.UpdateLinks
End If
End Sub
そして、あなたの完了。2003 と 2007 の両方で、マクロを有効にした形式で PowerPoint を保存してください。これは、私が 2 つのバージョンの ms office を持っているためです。VBAプロジェクトオブジェクトモデルへのアクセスを信頼するというチェックボックスにチェックマークを付けます。また、スライド ショーをループして、スライド 2 またはショーの最初の部分を通過したときに、すべての OLE リンクを更新します。
私が何かを逃した場合はコメントしてください。お役に立てれば。