I am trying to build some custom themes for excel charts in a dashboard. Upon recording a macro to see how these are implemented, the macro recorded the following code;
Further to comment on MSDN that:
You can use a number from 1 to 48 to set the chart style.
My test shows that range 201 to 352 is valid as well. This is across all chart types.
Create an Excel workbook looks like this - note I already added a chart so ws.ChartObjects(1)
can reference something:
The run this code - you can play with the Stop
s to see what is happening in more detail.
Option Explicit
Sub UnderstandChartStyle()
Dim ws As Worksheet
Dim cht As ChartObject
Dim varTypes As Variant
Dim i As Integer, j As Integer
varTypes = GetChartTypes
Set ws = ThisWorkbook.Worksheets(1)
Set cht = ws.ChartObjects(1)
For j = LBound(varTypes) To UBound(varTypes)
cht.Chart.ChartType = varTypes(j)
For i = 1 To 1000
On Error Resume Next
cht.Chart.ChartStyle = i
If Err.Number = 0 Then
Debug.Print "Chart type: " & varTypes(j) & "; Chart style: " & i & "; Sum: " & varTypes(j) + i
Else
Debug.Print "Chart style error: " & i
End If
Stop
Next i
Stop
Next j
End Sub
Function GetChartTypes() As Variant
Dim i As Integer
Dim varTypes(1 To 73) As Integer
varTypes(1) = -4169
varTypes(2) = -4151
varTypes(3) = -4120
varTypes(4) = -4102
varTypes(5) = -4101
varTypes(6) = -4100
varTypes(7) = -4098
varTypes(8) = 1
varTypes(9) = 4
varTypes(10) = 5
varTypes(11) = 15
For i = 12 To 73
varTypes(i) = i + 39
Next i
GetChartTypes = varTypes
End Function
The code for GetChartTypes
is based from this table:
| GROUPING | CHART TYPE | VALUE | VBA CONSTANT | |------------- |----------------------------------------------- |------- |---------------------------- | | 3DAREA | 3D AREA | -4098 | xl3DArea | | 3DAREA | 3D STACKED AREA | 78 | xl3DAreaStacked | | 3DAREA | 3D 100% STACKED AREA | 79 | xl3DAreaStacked100 | | 3DBAR | 3D CLUSTERED BAR | 60 | xl3DBarClustered | | 3DBAR | 3D STACKED BAR | 61 | xl3DBarStacked | | 3DBAR | 3D 100% STACKED BAR | 62 | xl3DBarStacked100 | | 3DCOLUMN | 3D CLUSTERED COLUMN | 54 | xl3DColumnClustered | | 3DCOLUMN | 3D COLUMN | -4100 | xl3DColumn | | 3DCOLUMN | 3D CONE COLUMN | 105 | xlConeCol | | 3DCOLUMN | 3D CYLINDER COLUMN | 98 | xlCylinderCol | | 3DCOLUMN | 3D PYRAMID COLUMN | 112 | xlPyramidCol | | 3DCOLUMN | 3D STACKED COLUMN | 55 | xl3DColumnStacked | | 3DCOLUMN | 3D 100% STACKED COLUMN | 56 | xl3DColumnStacked100 | | AREA | AREA | 1 | xlArea | | AREA | STACKED AREA | 76 | xlAreaStacked | | AREA | 100% STACKED AREA | 77 | xlAreaStacked100 | | BAR | CLUSTERED BAR | 57 | xlBarClustered | | BAR | STACKED BAR | 58 | xlBarStacked | | BAR | 100% STACKED BAR | 59 | xlBarStacked100 | | BUBBLE | 3D BUBBLE, BUBBLE WITH 3D EFFECTS | 87 | xlBubble3DEffect | | BUBBLE | BUBBLE | 15 | xlBubble | | COLUMN | CLUSTERED COLUMN | 51 | xlColumnClustered | | COLUMN | STACKED COLUMN | 52 | xlColumnStacked | | COLUMN | 100% STACKED COLUMN | 53 | xlColumnStacked100 | | CONE | CLUSTERED CONE COLUMN | 99 | xlConeColClustered | | CONE | STACKED CONE COLUMN | 100 | xlConeColStacked | | CONE | 100% STACKED CONE COLUMN | 101 | xlConeColStacked100 | | CONEBAR | CLUSTERED CONE BAR | 102 | xlConeBarClustered | | CONEBAR | STACKED CONE BAR | 103 | xlConeBarStacked | | CONEBAR | 100% STACKED CONE BAR | 104 | xlConeBarStacked100 | | CYLINDER | CLUSTERED CYLINDER COLUMN | 92 | xlCylinderColClustered | | CYLINDER | STACKED CYLINDER COLUMN | 93 | xlCylinderColStacked | | CYLINDER | 100% STACKED CYLINDER COLUMN | 94 | xlCylinderColStacked100 | | CYLINDERBAR | CLUSTERED CYLINDER BAR | 95 | xlCylinderBarClustered | | CYLINDERBAR | STACKED CYLINDER BAR | 96 | xlCylinderBarStacked | | CYLINDERBAR | 100% STACKED CYLINDER BAR | 97 | xlCylinderBarStacked100 | | DOUGHNUT | DOUGHNUT | -4120 | xlDoughnut | | DOUGHNUT | EXPLODED DOUGHNUT | 80 | xlDoughnutExploded | | LINE | 3D LINE | -4101 | xl3DLine | | LINE | LINE | 4 | xlLine | | LINE | LINE WITH MARKERS | 65 | xlLineMarkers | | LINE | STACKED LINE | 63 | xlLineStacked | | LINE | 100% STACKED LINE | 64 | xlLineStacked100 | | LINE | STACKED LINE WITH MARKERS | 66 | xlLineMarkersStacked | | LINE | 100% STACKED LINE WITH MARKERS | 67 | xlLineMarkersStacked100 | | PIE | 3D PIE | -4102 | xl3DPie | | PIE | 3D EXPLODED PIE | 70 | xl3DPieExploded | | PIE | BAR OF PIE | 71 | xlBarOfPie | | PIE | EXPLODED PIE | 69 | xlPieExploded | | PIE | PIE | 5 | xlPie | | PIE | PIE OF PIE | 68 | xlPieOfPie | | PYRAMID | CLUSTERED PYRAMID BAR | 109 | xlPyramidBarClustered | | PYRAMID | STACKED PYRAMID BAR | 110 | xlPyramidBarStacked | | PYRAMID | 100% STACKED PYRAMID BAR | 111 | xlPyramidBarStacked100 | | PYRAMID | CLUSTERED PYRAMID COLUMN | 106 | xlPyramidColClustered | | PYRAMID | STACKED PYRAMID COLUMN | 107 | xlPyramidColStacked | | PYRAMID | 100% STACKED PYRAMID COLUMN | 108 | xlPyramidColStacked100 | | RADAR | RADAR | -4151 | xlRadar | | RADAR | FILLED RADAR | 82 | xlRadarFilled | | RADAR | RADAR WITH DATA MARKERS | 81 | xlRadarMarkers | | SCATTER | SCATTER | -4169 | xlXYScatter | | SCATTER | SCATTER WITH LINES | 74 | xlXYScatterLines | | SCATTER | SCATTER WITH LINES AND NO DATA MARKERS | 75 | xlXYScatterLinesNoMarkers | | SCATTER | SCATTER WITH SMOOTH LINES | 72 | xlXYScatterSmooth | | SCATTER | SCATTER WITH SMOOTH LINES AND NO DATA MARKERS | 73 | xlXYScatterSmoothNoMarkers | | STOCK | STOCK HLC (HIGH-LOW-CLOSE) | 88 | xlStockHLC | | STOCK | STOCK OHLC (OPEN-HIGH-LOW-CLOSE) | 89 | xlStockOHLC | | STOCK | STOCK VHLC (VOLUME-HIGH-LOW-CLOSE) | 90 | xlStockVHLC | | STOCK | STOCK VOHLC (VOLUME-OPEN-HIGH-LOW-CLOSE) | 91 | xlStockVOHLC | | SURFACE | 3D SURFACE | 83 | xlSurface | | SURFACE | 3D SURFACE WIREFRAME | 84 | xlSurfaceWireframe | | SURFACE | SURFACE TOP VIEW | 85 | xlSurfaceTopView | | SURFACE | SURFACE TOP VIEW WIREFRAME | 86 | xlSurfaceTopViewWireframe |
HTH