ワークシートのすべてのグラフでセカンダリ軸の範囲を更新するための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
をされませんエラーの原因は何ですか?ループの本体を独自のパラメータ化されたプロシージャ*に抽出してランタイムエラー*を処理できるため、最初の繰り返しが爆発しても、残りの 'ChartObjectsコレクション。 –
*要約*シートにはどのような種類のチャートがありますか?それらはすべて第2の価値軸を持っていますか? –
私はコードからは分かりませんが、 'debug.print objChart.name'をループ内に追加し、F8でコードをステップ実行してみてください。どのチャートが更新され、どのチャートが更新されないかを確認します。 –