I want to create a Chart using Excel data.
How can I do that?
Try
Option Explicit
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
'Public xlApp As Excel.Application
'Public xlBook As Excel.Workbook
Public Sub Macro1()
Dim xlApp, xlBook, i, arData, ws
' get Excel data
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
Set xlBook = xlApp.Workbooks.Open(FileName:="Data.xlsx", ReadOnly:=True)
arData = xlBook.sheets(1).Range("A1:B6")
xlBook.Close False
xlApp.Quit
'Delete all Slides
For i = ActivePresentation.Slides.Count To 1 Step -1
ActivePresentation.Slides(i).Delete
Next i
'Add a blank slide
Dim ppSlide As Slide, ppShape As Shape
Set ppSlide = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, ppLayoutBlank)
'Add a Map Chart
Set ppShape = ppSlide.Shapes.AddChart2(Style:=140, Type:=xlRegionMap, _
Left:=0, Top:=0, Width:=960, Height:=540, NewLayout:=False)
ppShape.Chart.Name = "myChart"
' wait for chartdata sheet
On Error Resume Next
Do
DoEvents
Sleep 1000
Set ws = ppShape.Chart.ChartData.Workbook.sheets(1)
Loop While IsEmpty(ws)
On Error GoTo 0
' copy data into PP
With ws
.UsedRange.Clear
.Range("A1").Resize(UBound(arData), UBound(arData, 2)) = arData
ws.Parent.Close
End With
MsgBox "Complete"
End Sub
.Worksheetsinstead of.Sheets.