2017-01-01 22 views
0

とMin。 vbaのチャートの1次水平X軸のスケールが設定されています。セカンダリ水平X軸VBAの最大スケール

Sub chart_set() 
    Dim objCht As ChartObject 
    With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue) 
    .MinimumScale = 0 
    .MaximumScale = my_max_var 
    End With 
End Sub 

セカンダリを設定する方法はありますか。

答えて

1

まず、以下のコードActiveSheetでChartObjectに意志Set objCht(ここで離れてActiveSheetHow to avoid using Select in Excel VBA macrosから滞在する方法勧告を参照)

二軸が適用される場合、それはそれを追加しますない場合は、以下のコードは、チェックしますチャートに追加します。その後、MinimumScaleMaximumScaleが20と50(私が選択した乱数のみ)に変更されます。

コード

Option Explicit 

Sub chart_set() 

Dim objCht As ChartObject 
Dim my_max_var As Long 

' just for my tests 
my_max_var = 1000 

' set chart object 
Set objCht = ActiveSheet.ChartObjects(1) 

With objCht 
    With .Chart.Axes(xlValue, xlPrimary) 
     .MinimumScale = 0 
     .MaximumScale = my_max_var 
    End With 

    ' check if Secondary Axis is applied 
    If .Chart.HasAxis(xlValue, xlSecondary) = False Then 
     .Chart.HasAxis(xlValue, xlSecondary) = True 
    End If 

    ' modify minimum and maximum values of seconday axis 
    With .Chart.Axes(xlValue, xlSecondary) 
     .MinimumScale = 20 
     .CrossesAt = 20 
     .MaximumScale = 50 
    End With 

End With 

End Sub 
+0

おかげシャイは、ちょうど私が必要なもの! – Hamidreza

+1

あなたの歓迎です:) 'ActiveSheet'の代わりに次回の' Sheets( "YourSheetName") 'を試してみてください。可能なエラーを回避するのに役立ちます –

関連する問題