2012-08-13 29 views
8

"Graphs"シートのグラフをjpegファイルとしてエクスポートするボタンを作成しようとしています。これは私が持っているコードです、しかしそれは、このエラーを示すに保持します。このために具体的にグラフを画像としてエクスポートする - ボタンをクリックする

runtime error 424: object required

Set myChart = Graphs.ChartObjects(3).Name = "Chart4" 

をそしてここでコード

Sub ExportChart() 
    Dim myChart As Chart 
    Dim myFileName As String 
    Set myChart = Graphs.ChartObjects(3).Name = "Chart4" 
    myFileName = "myChart.jpg" 
    On Error Resume Next 
    Kill ThisWorkbook.Path & "\" & myFileName 
    myChart.Export Filename:=ThisWorkbook.Path & "\" & myFileName, Filtername:="PNG" 
    MsgBox "OK" 
    Set myChart = Nothing 
End Sub 

みんなありがとうです!

答えて

18

これはあなたの試みですか?

また、jpgとして保存しようとしている場合は、なぜpngフィルタですか?私は "myChart.jpg"を "myChart.png"に変更しました。該当する場合は変更してください。

Sub ExportChart() 
    Dim objChrt As ChartObject 
    Dim myChart As Chart 

    Set objChrt = Sheets("Graphs").ChartObjects(3) 
    Set myChart = objChrt.Chart 

    myFileName = "myChart.png" 

    On Error Resume Next 
    Kill ThisWorkbook.Path & "\" & myFileName 
    On Error GoTo 0 

    myChart.Export Filename:=ThisWorkbook.Path & "\" & myFileName, Filtername:="PNG" 

    MsgBox "OK" 
End Sub 
+0

あなたは速すぎます! OPの1つのメモは、シッダースの答えに組み込まれているので、できるだけ早くOn Error GoToをコードに追加するか、エラーをマスクします。この場合、ChartObjectのChartオブジェクトが必要です。これは常に混乱します。 –

+0

私は最後の数日間は活動していません:D –

+0

すごくうれしいです。ありがとう! – pufAmuf

1

ありがとう、私は画像のすべてのチャートを抽出する必要があり、それはほぼ真夜中です。 上記のコードを少し変更すると、このトリックが実行されました。

Sub ExportChart() 
    Dim WS As Excel.Worksheet 
    Dim SaveToDirectory As String 

    Dim objChrt As ChartObject 
    Dim myChart As Chart 

    SaveToDirectory = ActiveWorkbook.Path & "\" 

    For Each WS In ActiveWorkbook.Worksheets 
     WS.Activate 'go there 
     For Each objChrt In WS.ChartObjects 
      objChrt.Activate 
      Set myChart = objChrt.Chart 

      myFileName = SaveToDirectory & WS.Name & "_" & objChrt.Index & ".png" 

      On Error Resume Next 
      Kill SaveToDirectory & WS.Name & Index & ".png" 
      On Error GoTo 0 

      myChart.Export Filename:=myFileName, Filtername:="PNG" 
     Next 
    Next 

    MsgBox "OK" 
End Sub 
関連する問題