最初から、マーカー付きのグラフを作るには、次のようにします。
Sub Sample() ActiveSheet.Shapes.AddChart.Chart.ChartType = xlLineMarkers End Sub
ChartTypeプロパティに指定できる定数(グラフの種類)は、次のページを参考にしてください。
グラフの種類を変えるもし、先にマーカーなしの折れ線グラフを作って、後からマーカーを表示するときには、グラフを作り直すのではなく、MarkerStyleプロパティにマーカーを表す次の定数を指定します。
定数 | 値 | 意味 |
---|---|---|
xlMarkerStyleAutomatic | -4105 | 自動マーカー |
xlMarkerStyleCircle | 8 | 円形のマーカー |
xlMarkerStyleDash | -4115 | 長い棒のマーカー |
xlMarkerStyleDiamond | 2 | ひし形のマーカー |
xlMarkerStyleDot | -4118 | 短い棒のマーカー |
xlMarkerStyleNone | -4142 | マーカーなし |
xlMarkerStylePicture | -4147 | 画像マーカー |
xlMarkerStylePlus | 9 | 正符号(+)付きの四角形のマーカー |
xlMarkerStyleSquare | 1 | 四角形のマーカー |
xlMarkerStyleStar | 5 | アスタリスク付きの四角形のマーカー |
xlMarkerStyleTriangle | 3 | 三角形のマーカー |
xlMarkerStyleX | -4168 | X印付きの四角形のマーカー |
次のコードは、1番目の系列(ここでは"田中")に、四角形のマーカーを設定します。
Sub Sample() ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).MarkerStyle = xlMarkerStyleSquare End Sub
MarkerStyleプロパティは、系列(Seriesオブジェクト)ごとに設定しますので、すべての系列にマーカーを設定するには、次のようにします。
Sub Sample() Dim i As Long With ActiveSheet.ChartObjects(1).Chart.SeriesCollection For i = 1 To .Count .Item(i).MarkerStyle = xlMarkerStyleSquare Next i End With End Sub
マーカーの色を変えるのは、棒グラフで系列の塗りつぶし色を変えるのと同じ考え方です。
詳しくは、下記のページをご覧ください。
次のコードは、1番目の系列(ここでは"田中")のマーカーを黒色にします。
Sub Sample() ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(0, 0, 0) End Sub
Excel 2003でマーカーの種類を変更すると、次のようなコードが記録されます。なお、ここではサイズも変更しました。
Sub Macro() ActiveSheet.ChartObjects(1).Activate ActiveChart.SeriesCollection(1).Select With Selection.Border .Weight = xlThin .LineStyle = xlAutomatic End With With Selection .MarkerBackgroundColorIndex = xlAutomatic .MarkerForegroundColorIndex = xlAutomatic .MarkerStyle = xlSquare .Smooth = False .MarkerSize = 6 .Shadow = False End With End Sub
このコードは、Excel 2007でも動作します。