Set Axes gridline and its border color
Sub FormattingCharts() Dim myChart As Chart Dim ws As Worksheet Dim ax As Axis Set ws = ThisWorkbook.Worksheets("Sheet1") Set myChart = GetChartByCaption(ws, "GDP") If Not myChart Is Nothing Then Set ax = myChart.Axes(xlValue) With ax .HasMinorGridlines = True .MinorGridlines.Border.LineStyle = xlDashDot End With End If Set ax = Nothing Set myChart = Nothing Set ws = Nothing End Sub Function GetChartByCaption(ws As Worksheet, sCaption As String) As Chart Dim myChart As ChartObject Dim myChart As Chart Dim sTitle As String Set myChart = Nothing For Each myChart In ws.ChartObjects If myChart.Chart.HasTitle Then sTitle = myChart.Chart.ChartTitle.Caption If StrComp(sTitle, sCaption, vbTextCompare) = 0 Then Set myChart = myChart.Chart Exit For End If End If Next Set GetChartByCaption = myChart Set myChart = Nothing Set myChart = Nothing End Function