2017-08-30 16 views
2

私は、毎週進捗状況に基づいて傾向を示すために、エクセルチャートを使用しています。 VBAを使用して、xlCategory軸の目盛りラベルをデータセット内の各月曜日に設定するにはどうすればよいですか?これは可能ですか?私は軸のフォーマット方法を知っていますが、毎週月曜日から始めるように指示する方法はわかりません。ありがとう!毎週月曜日のチャート開始のティッカーラベルを作成するにはどうすればよいですか?

私はmajorunitとminorunitを変更するオプションがあることを知っています。多分私はそれらを何とか使うことができますか?これは私がこれまで持っているものです。

On Error Resume Next 
ActiveSheet.ChartObjects.Delete 
On Error GoTo 0 

Set metricschart = sht.Shapes.AddChart.Chart 

With metricschart 
    .Parent.Name = "metricschart" 
    .HasTitle = True 
    .ChartTitle.Text = "Business Requirements Tested Over Time" 
    .ChartTitle.Characters.Font.Size = 14 
    .ChartType = xlXYScatterSmoothNoMarkers 
    .SetSourceData Source:=sht2.Range("A1:DA2") 
    .Location where:=xlLocationAsObject, Name:=sht.Name 
    .Parent.Height = 325 
    .Parent.Width = 600 
    .Parent.Top = 70 
    .Parent.Left = 350 
    .Legend.LegendEntries(1).Delete 
    .Axes(xlCategory).MinimumScale = sht2.Range("A1") 
    .Axes(xlCategory).MaximumScale = sht2.Range("DA1") 
    .Axes(xlCategory).TickLabels.NumberFormat = "m/d" 
    .Axes(xlCategory).MajorUnit = vbMonday 'this doesn't work, shows way too many days 
End With 

上記のコードは、この(2日ごと)のように軸を行います enter image description here

これは私のデータは次のようになります。 enter image description here

+0

シートのデータを表示できますか? –

+0

「VBAを使用する」...これまでどんなコードがありますか? –

答えて

3

カテゴリーの軸をタイムスケールに設定し、開始値の月曜日を決定し、7日ごとにティックを追加するだけです。

Sub Test() 
Dim cht As Chart 
Dim ax As Axis 

Set cht = Worksheets(1).ChartObjects(1).Chart 
Set ax = cht.Axes(xlCategory) 

With ax 
    .CategoryType = xlTimeScale 'For dates 
    .MajorUnit = 7 'Only 1 tick every 7 days 
    .AxisBetweenCategories = False 'Tick exactly on the date, not between the values. 
    .CrossesAt = 42975 'the integer value of the date you wish to be the first one. In this case 2017-08-28. 
End With 

End Sub 
+0

カテゴリの種類、メジャーユニットを7に設定し、カテゴリ間の軸が必要なものを正確に設定しました。先ほどのコードでは、MinimumScaleとMaximumScaleを設定したので、軸が始まるときにすべて設定されています。ありがとうございました! –

関連する問題