VBAでパワーポイントのリンク更新を処理する

  • 2007/11/06 (火) AM 2:16
雑記 Amazon情報 あみあみ情報

久しぶりの更新(^^;)

「おー、エースコンバットするぞぉ!」
「うぃ~」





「おぉ、狙われてるw」
「よし!このまま逃げ切る」





「加速装置っ!」
「うぐぐぅ・・・・」
「ちょっっwwww戦線離脱しちゃってるよ」







「ところで、先週はずぅーとWebの更新してないけど、どうしたの?って友人らが言ってたよ。」
「3連休があっという間だったて嘆いてたな・・・」


↓こんな物、作ってたら全然更新できんかった(^^;)
「パワーポイントのグラフデータ、セルデータなどが、エクセル上のデータと自動リンクし、エクセル側からパワーポイント(以下PPT)をスライド動作させる」

今回、作るに当たって重要な動作は、VBA化してみました。
というか、グラフのアニメーションとかすると必然的にVBA化した方が楽なんですねー。

エクセル→PPTへデータをコピーする事自体は簡単
問題になってくるのは、それを連動させる場合


PPTへグラフデータを貼り付ける場合、2通りの手段があります。
①エクセルのセルデータ→PPTのグラフデータ上のセルに[リンク貼り付け]



②エクセル上でグラフを作りそのグラフその物をコピーし、PPT上に[形式を選択して貼り付け]→[リンク貼り付け]





それぞれ長所・短所があります。
①の場合
(長所)PPT上のリンク貼り付けしたグラフのアニメーションは、「系列別・項目別・1つのオブジェクトとして」などが選択可能
(短所)PPT上のグラフシートを開かないとデータが更新されない

②の場合
(長所)ファイルを開いたときに[リンク更新]すると、リアルタイムにリンクする
(短所)PPT上のリンク貼り付けしたグラフのアニメーションは、「1つのオブジェクトとして」のみ選択可能

それぞれデータ自体はリンクしてますが、特に上手く反映されないのが(1)のケースかと思います。

ちなみに私の場合、エクセルでデータ編集した後、PPTを起動→データリンク更新→スライドの手順にする為、PPTの起動&マクロの実行までは、エクセル側のVBAで処理してます。(内容は割愛)
[データ更新]はPPT側のVBAで実行します。
まず、PPTのマクロ編集を開いて、プロジェクトから 挿入→標準モジュールを作成。
※下記の内容は状況に応じて変更してください。

'アクティブ化
With Application.Presentations("テスト.ppt").Windows(1)
  If Not .Active Then
    Set oldWin = Application.ActiveWindow
    .Activate
  End If
End With

'リンクの更新
ActivePresentation.UpdateLinks

'オブジェクトの更新
ActivePresentation.Slides(3).Select
  ActiveWindow.Selection.SlideRange.Shapes("Object 6").Select   ActiveWindow.Selection.ShapeRange.OLEFormat.DoVerb Index:=1
  ActiveWindow.Selection.Unselect

'表紙からスライドスタート
ActivePresentation.Slides(1).Select

With ActivePresentation.SlideShowSettings
  .StartingSlide = ActiveWindow.Selection.SlideRange.SlideNumber
  .EndingSlide = 1
  .Run
End With


各処理の概要は以下の通り。
['アクティブ化]
アクティブ化してあげないとエラーが起きます!
['リンクの更新]
②のグラフに対するリンク更新。
てか、ファイル開いた時に問い合わせてくる[リンク更新しますか?]のをこの一行で処理しちゃってます。
['オブジェクトの更新]
①のグラフに対するリンク更新。
かなり強引なやり方だと私なりに思うので他に良い方法が有ったら教えて頂きたいぐらい・・・・
Slides(3) はスライドのページ番号を指してます。
Shapes("Object 6") はそのスライドページにあるグラフのオブジェクト名です。
上記のスライドページとオブジェクト名を調べるには、「マクロの記録」をすると直ぐに判明します。
オブジェクト名は、各スライドページごとに定義されてるので、スライドをコピペすると同じオブジェクト名ってのも出てる場合があります。
['表紙からスライドスタート]
Slides(1)で1ページ目を選択後、スライドが始まります。


パワーポインタのVBA情報が少ないので、出来るまでかなり時間が掛かったorz
あとは、PPT上でESCキー押した際にPPT自体が終了するように出来るといいなぁ~

私的に覚え書き程度に書きましたが、一般的にはこういう事する人すくなさそう。
でも、活用出来そうでしたら、お試しあれ。
ホビー/グッズ販売 通販ショップの駿河屋 ブックオフオンライン【PC・携帯共通】

TOP > VBAでパワーポイントのリンク更新を処理する

検索
Search
カスタム検索
Amazon.co.jpアソシエイト
フィギュア/ドール/衣装
figure/Doll


POPメイト「ミュウ ビキニバージョン」

東京ドール(ビキニ)ホビーサーチ
※レビューはコチラ



























Page Top