2017-05-11 5 views
1

チャートはチャートで作成されましたMicrosoft PowerPointフィーチャーでチャートを更新しました。 PowerPointユーザーフォームを使用します。 にあるDVPVreportという名前のシートを指し示すコード行がありますか?ルーチンが実行されると、Microsoft PowerPointが表示されます。現在のコードは、DVPVreportがMicrosoft PowerPointのチャート内にあるとは考えていません。コードを実行しようとしました:「Chart in Microsoft PowerPoint」に含まれるデータをPowerPoint UserFormで入力したデータから更新することは可能ですか

Set ws = 'Chart In MicrosoftPowerPoint!'.Worksheets(DVPVreport) 

成功しませんでした。

Private Sub AddDVSetUp_Click() 

    Dim ws As Worksheet 
    Set ws = Worksheets("DVPVreport") 

    ws.Cells(3, 4).Value = Gate2Date.Value 
    Unload M 

    ws.Cells(3, 5).Value = Gate3Date.Value 
    Unload M 

End Sub 

答えて

0

はい可能です。これを試してみてください:

Dim sl As Slide 
Set sl = ActivePresentation.Slides(1) 

Dim xlWB As Object 
Dim sh As Shape, ch As Chart 

For Each sh In sl.Shapes 
    If sh.Type = msoChart Then 
     Set ch = sh.Chart 
     Set xlWB = ch.ChartData.Workbook 
     With xlWB.Sheets(1) '/* It has only 1 sheet so this will be fine */ 
      '/* Do the changes you want here */ 
      .Range("B2").Value = 4.2 
     End With 
    End If 
Next 
Set ch = Nothing: Set xlWB = Nothing: Set sl = Nothing '/* clean up */ 

を今、あなたはすでにあなたのオブジェクトのインデックスまたは名前を知っていれば、あなたは、単に行うことができます

Dim sl As Slide 
Set sl = ActivePresentation.Slides(1) 

Dim xlWB As Object 
Dim sh As Shape 

Set sh = sl.Shapes("Chart 1") 
Set xlWB = sh.Chart.ChartData.Workbook 

With xlWB.Sheets(1) 
    .Range("B2").Value = 4.2 
End With 

重要:ソース・データ・レイアウトを台無しにしないよう十分に注意してください。これを行うと何らかの理由でチャートがChartDataと関連付けが解除されます。

+0

優れたL42。プレゼンテーション内のこのスライドの柔軟性を向上させるには、ActivePresentation.Slide(1)に関連して(1)に関する回避策がありますか?このスライドがプレゼンテーションの最初のスライドでない場合があります。それはスライド8から15までどこでもかまいません。 –

+0

@ M.Boes私はあなたにその部分を残します:)。グラフオブジェクトの特定の名前が分かっている場合は、すべてのスライドをループしてグラフの場所を確認できます。デモの目的で 'ActivePresentation.Slides(1)'を使用しました。 – L42

+0

ポイントを取得し、私はあなたのアプローチを参照してください。 –

関連する問題