2

徹底的に検索しましたが、答えが見つからないようです。既存のパワーポイントチャートのデータを更新したい。これまでのところ、彼のプレゼンテーションを開いてページを選択することはできますが、下の最後の行を超えることはできません。

データシートを開いて、そこにデータを貼り付ける必要があります。新しいグラフでそれを行うことができましたが、データシートがすぐに開きますが、必要に応じてすべての書式が設定されるため、既存のグラフを使用したいと思います。次に、複数のページの複数のチャートに対してこれを実行して、新しい顧客グループの標準プリセットを更新します。

誰かがデータシェットを開いて正しいセルを選択し、新しいデータを貼り付ける方法を教えてもらえますか(Excelからのものです)。多くの理由で、グラフを貼り付けたくないので、daaをPowerPointに常駐させたいと思います。このマクロは、新しいデータを含むExcelファイルから実行されます。

Sub test2()

Set rngData = Range("A1:D6")

Set ObjPPT = CreateObject("PowerPoint.Application")
Set ObjPresentation = ObjPPT.Presentations.Open("C:\Documents and Settings\ewnym5s\My Documents\Document_sample.pptx")
Set ObjSlide = ObjPresentation.Slides(1)
Set mychart = ObjSlide.Shapes("Chart 1").Chart
mychart.Select

Set wb = mychart.ChartData
Set ws = wb.Worksheets(1)
4

1 に答える 1

7

データシートを開くには、図形を選択してからチャートデータをアクティブにする必要があります。そして、ワークブックにアクセスできます。コメントを追加してコードを少し修正しました

  Sub test2()

    Set rngData = Range("A1:D6")

    Set ObjPPT = CreateObject("PowerPoint.Application")
    Set ObjPresentation = ObjPPT.Presentations.Open("C:\Documents and Settings\ewnym5s\My Documents\Document_sample.pptx")
    Set ObjSlide = ObjPresentation.Slides(1)
    Set mychart = ObjSlide.Shapes("Chart 1").Chart
    mychart.Select

    'Activate the chart data
    mychart.ChartData.Activate
    'Retrieve the workbook.
    Set wb = mychart.ChartData.Workbook
    Set ws = wb.Worksheets(1)

    'Do stuff with the workbook then close with save
    wb.Close True
  end Sub

これがわからない場合は、チャートデータをアクティブにすると、Excel が開いてワークブックが表示されます。この方法を使用すると、少なくともちらつきを回避する方法はありません。ちらつきをできるだけ短くするには、 を追加できますwb.parent.Visible = false。ちらつきに耐えられない場合は、このスレッドで可能な回避策を示しましたが、OLEObjects と古いコントロールを使用する必要があります。

于 2012-10-10T23:49:20.593 に答える