2

私はしたいと思います:

VBA Excel から PowerPoint でグラフを作成する Excel ファイルにある範囲にデータ ソースをリンクする または、PowerPoint がデータ ソースを保存するワークシートを自分のデータで置き換える

私はVBAの初心者です(学習しようとして1週間)

私はこれをします:

Dim ChartDataRange As Excel.Range
Dim myWorksheet As Worksheet
Set ChartDataRange = Excel.Range("Chart_Data_Range")
Dim ChartRelativePerfBox As PowerPoint.Shape

'Now open PowerPoint
Dim pptApp As New PowerPoint.Application

'Keep it visible because we need to see it and be able to save it
pptApp.Visible = True

'Tell VBA that FinancialSlide is a PowerPoint presentation
Dim FinancialSlide As PowerPoint.Presentation

'Add new presentation
Set FinancialSlide = pptApp.Presentations.Add

'Tell VBA that firstslide is a PowerPoint slide
Dim Slide1 As PowerPoint.Slide

'Create the first slide
Set Slide1 = FinancialSlide.Slides.Add(1,PowerPoint.PpSlideLayout.ppLayoutBlank)

Set ChartRelativePerfBox = Slide1.Shapes.AddChart( _
    Type:=xlLine, _
    Left:=Application.CentimetersToPoints(12.95), _
    Top:=Application.CentimetersToPoints(12.6), _
    Width:=Application.CentimetersToPoints(11.45), _
    Height:=Application.CentimetersToPoints(5.5))
Set myWorksheet = ChartRelativePerfBox.Chart.ChartData.Workbook.Worksheet(1)

'Replace data source in the worksheet by desired data
Application.DisplayAlerts = False
'Copy desired data
ChartDataRange.Copy
'Paste them in the chart worksheet
myWorksheet.Range("A1").PasteSpecial (xlPasteValuesAndNumberFormats)
'Delete extra columns in worksheet
myWorksheet.Columns("D:E").Select
Selection.Delete
'Resize to used range
myWorksheet.ListObjects("Table1").Resize myWorksheet.UsedRange
Application.DisplayAlerts = True

私は使用しようとしました:

Set ChartRelativePerfBox.SetSourceData( _
Source:= ChartDataRange, _
PlotBy:= xlLine)

しかし、うまくいきません。推測はありますか?

私の以前のコードは動作しますが、とても遅い..

4

1 に答える 1