https://www.mrexcel.com/forum/excel-questions/808744-exporting-chart-via-vba-sometimes-gives-empty-file.html
Post #7 talks about using .Activate
This seems reliable
Option Explicit
Private Sub Workbook_Open()
Dim FName As String
FName = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
On Error Resume Next
Kill FName
On Error GoTo 0
UserForm1.Show
End Sub
Private Sub UpdateChart()
Dim FName As String
Set currentchart = Sheets("Charts").ChartObjects(ChartNum).Chart
currentchart.Parent.Activate
'currentchart.Parent.Width = 300
'currentchart.Parent.Height = 150
' Save chart as GIF
FName = ThisWorkbook.Path & Application.PathSeparator & "temp.gif"
On Error Resume Next
Kill FName
On Error GoTo 0
currentchart.Export Filename:=FName, FilterName:="GIF"
' Show the chart
Image1.Picture = LoadPicture(FName)
Kill FName
End Sub