2016-08-23 5 views
0

ワークシートのすべてのグラフでセカンダリ軸の範囲を更新するためのVBAコードは、一部のグラフでのみ機能します。マクロを実行すると、オブジェクト '_Chart'の "Method 'Axes'メッセージが表示され、そのワークシート上の一部のグラフのみが更新されます。ここで何が問題なの?一部のグラフでのみ有効なVBAコード

Sub Macro1() 

Dim objChart As ChartObject, lower As Double, upper As Double 

lower = Application.InputBox(prompt:="Enter lower bound", Type:=1) 
upper = Application.InputBox(prompt:="Enter upper bound", Type:=1) 

For Each objChart In Sheets("Summary").ChartObjects 
    With objChart.Chart.Axes(xlValue, xlSecondary) 
     .MinimumScale = lower 
     .MaximumScale = upper 
    End With 
Next objChart 

End Sub 
+0

をされませんエラーの原因は何ですか?ループの本体を独自のパラメータ化されたプロシージャ*に抽出してランタイムエラー*を処理できるため、最初の繰り返しが爆発しても、残りの 'ChartObjectsコレクション。 –

+0

*要約*シートにはどのような種類のチャートがありますか?それらはすべて第2の価値軸を持っていますか? –

+1

私はコードからは分かりませんが、 'debug.print objChart.name'をループ内に追加し、F8でコードをステップ実行してみてください。どのチャートが更新され、どのチャートが更新されないかを確認します。 –

答えて

0

ChartObjectにセカンダリ軸がない場合は、エラーになります。私はあなたの正確なエラーを再現する方法を見つけ出すことができませんでしたが、私はa commentに言ったように、手順を抽出し、実行時エラーを処理する少なくともヘルプには、すべてのチャートの問題を診断し、ループの反復処理を行う必要があります。

Public Sub UpdateSummarySheetChartAxes() 

    Dim lower As Double 
    lower = Application.InputBox(prompt:="Enter lower bound", Type:=1) 

    Dim upper As Double   
    upper = Application.InputBox(prompt:="Enter upper bound", Type:=1) 

    Dim objChart As ChartObject 
    For Each objChart In Sheets("Summary").ChartObjects 
     UpdateChartAxes objChart, lower, upper 
    Next objChart 

End Sub 

Private Sub UpdateChartAxes(ByVal objChart As ChartObject, ByVal lower As Double, ByVal upper As Double) 
    On Error GoTo CleanFail 
    With objChart.Chart.Axes(xlValue, xlSecondary) 
     .MinimumScale = lower 
     .MaximumScale = upper 
    End With 
CleanExit: 
    Exit Sub 
CleanFail: 
    Debug.Print "Failed updating axes for chart '" & objChart.Name & "'. Message: " & Err.Description 
    Resume CleanExit 
End Sub 
+1

美しい。問題は実際にセカンダリ軸のないグラフです。これは、一般的な問題の診断にも最適です。私は一度許可されたら、答えとして受け入れます、多くのありがとう! – rocketman

+1

'.Axes.Count> 2の場合' - >は2次のy軸を持ちます(2次のx軸は決してないと仮定します) –

関連する問題