web-dev-qa-db-ja.com

PowerPointでExcel埋め込みグラフを更新する方法

Excelから作成され、PowerPointスライドに貼り付けられた30のグラフがあります。毎月、手動でグラフをクリックして編集することにより、これらの30の埋め込みグラフを更新する必要があります。

特殊貼り付けを使用するオプションがあることを知っています。これにより、更新リンクをクリックすることで、チャートのデータを自動的に更新できます。ただし、一部のユーザーはグラフを編集する必要があります。特別な貼り付けオプションでは、ユーザーはグラフを編集できません。したがって、この特別な貼り付けオプションは使用できません。

解決策は、PowerPointでVBAを記述することだと思います。ここの専門家は、すべてのチャートをパワーポイントで更新できるように、このvbaコードを書くことを提案できますか?私は現在PowerPoint 2007を使用しています。ご協力に感謝いたします。

8
user1199080

グラフを編集する必要がある場合は、基になるExcelファイルを編集するか、PowerPointで編集できるようにする必要があります

Excelを完全にサポートするPowerPoint2007を使用しているので(データシートがあるPowerPoint 2003とは異なり)、

パート1

  1. Excelファイルデータを各グラフの下のExcelデータにリンクする
  2. そのデータを直接使用するか、ユーザーデータで上書きする機能を提供する

Sample

これにより、柔軟なソリューションが提供されますが、各グラフの基になっているExcelは、PowerPointメニューの[リンクの更新]コマンドで自動的に更新できません。

パート2

以下のコードを使用して、各スライドの各図形にグラフがあるかどうかをそれぞれテストできます。その場合、このコードは、グラフの下のExcelファイルの最初のExcelリンクを更新します(この部分を微調整して、複数のリンクを処理できます)

    Sub ChangeChartData()

    Dim pptChart As Chart
    Dim pptChartData As ChartData
    Dim pptWorkbook As Object
    Dim sld As Slide
    Dim shp As Shape

    For Each sld In ActivePresentation.Slides
        For Each shp In sld.Shapes
            If shp.HasChart Then
                Set pptChart = shp.Chart
                Set pptChartData = pptChart.ChartData
                pptChartData.Activate
                Set pptWorkbook = pptChartData.Workbook
                On Error Resume Next
                'update first link
                pptWorkbook.UpdateLink pptWorkbook.LinkSources(1)
                On Error GoTo 0
                pptWorkbook.Close True
            End If
        Next
    Next

    Set pptWorkbook = Nothing
    Set pptChartData = Nothing
    Set pptChart = Nothing

End Sub
15
brettdj

これは、VBAコードを必要とせずに、かなり簡単に実行できます。

  1. [Officeボタン]をクリックし、[ファイルへのリンクの編集]を選択します([互換性チェックを実行]の下にあります。最後のオプションを表示するには、下にスクロールする必要があります):

    Office Menu, "Prepare" submenu

  2. すべての埋め込みグラフ(ここでは「リンク」と呼ばれます)を選択し、[今すぐ更新]をクリックします。

    "Links" window

同じウィンドウを使用してリンクを解除したり、特定のリンクのソースファイルを変更したりできます。

2
eykanal