2016-05-10 1 views
0

私は、プライマリとセカンダリの軸が同じ数のステップを使用するように(軸線が常に両方の軸に整列するように)メソッドを探しています。主軸と同じステップ数の副軸ですか?

現在、私の主軸は5ステップ、私のセカンダリは6ステップです。私は両方の軸に同じステップ数を持たせたい。

これは可能ですか?

チャートデータは、検証リストでの選択によって異なります。 このためのプロセスへ:

  1. 小売業者
  2. 製品
  3. 事実1
  4. 事実2
  5. 事実を3

ダッシュボード上で、ユーザは、5つのオプションを選択します

ファクト1とファクト2がプライマリ軸上にあります。ファクト3はセカンダリ軸上にあります。

1から5までの選択肢に対応する値は大きく異なります。 したがって、プライマリとセカンダリの軸の値が(新しい選択があるたびに)大きく変化します。

新しい選択ごとに、コードでは、主軸線の数が両方の軸で同じになるように、新しい最小値と最大値、および両方の軸の主単位を計算する必要があります。

私はworkheet_changeイベントによって上記が引き起こされるはずだと思います。しかし、私はプライマリとセカンダリの両方の軸の主要ユニットをどのように設定できるのだろうかと思います。

EDIT:

私はちょうど私がやろうとしています何をすべきVBAコードでこのサイトを見つけました。私はまだそれを試していないが、私はします。

http://www.myengineeringworld.net/2015/04/adjust-secondary-y-axis-scale-chart-vba.html

答えて

1

はい、それは、単にプライマリとセカンダリの両方の軸に同じ値を割り当てる

編集ですので、あなただけの誰かがあなたのためにコードを書きたいですか?私の答えはあなたの質問とまったく同じでした:それは可能かどうか...下のコードは、二次軸と一次軸の最小値と最大値の両方を揃えているので、おそらくmajorUnitは同じになります。そうでない場合は、これを行うためにマクロを更新するのは難しくありません。それが不可能なら、私に知らせてください。

Sub alignAxis() 

    Dim mySheet As Worksheet 
    Set mySheet = Sheets("Sheet3") 

    Dim primaryMax As Integer 
    Dim primaryMin As Integer 
    Dim secondaryMax As Integer 
    Dim secondaryMin As Integer 
    Dim max As Integer 
    Dim min As Integer 

    With mySheet 
     With .ChartObjects("myChart").Chart.Axes(xlValue) 
      primaryMin = .MinimumScale 
      primaryMax = .MaximumScale 
     End With 
     With .ChartObjects("myChart").Chart.Axes(xlValue, xlSecondary) 
      secondaryMin = .MinimumScale 
      secondaryMax = .MaximumScale 
     End With 

     If primaryMax > secondaryMax Then 
      max = primaryMax 
     Else 
      max = secondaryMax 
     End If 

     If primaryMin < secondaryMin Then 
      min = primaryMin 
     Else 
      min = secondaryMin 
     End If 
     With .ChartObjects("myChart").Chart.Axes(xlValue) 
      primaryMin = min 
      primaryMax = max 
     End With 
     With .ChartObjects("myChart").Chart.Axes(xlValue, xlSecondary) 
      secondaryMin = min 
      secondaryMax = max 
     End With 

    End With 

End Sub 
+0

ありがとう。私の質問には不可欠な情報がなかったので、あなたの答えは私が探していた答えではありませんでした。それは私の間違いです。私は私の質問に追加情報を追加します。おそらく、その情報を念頭に置いた別のソリューションがあります。 – DutchArjo

+0

いいえ、私はコードを書く人を探しているだけではありませんでした。私はVBAによって両方の軸に等しい数のメジャーグリッドラインを持つことが可能かどうか疑問に思っていました。メジャーユニットを手動で設定することは可能です(まだパズルかもしれませんが)。しかし、私はそれが主要なグリッドラインの同じ量を持っているように両方の軸のために主要なユニットを整列させることができたかどうか疑問に思った。 – DutchArjo

+0

@DutchArjoだから、あなたはプライマリとセカンダリを考えることはできませんが、値とカテゴリ? –

関連する問題