マーカーを設定する


最初から、マーカー付きのグラフを作るには、次のようにします。

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

マーカーの色を変える

マーカーの色を変えるのは、棒グラフで系列の塗りつぶし色を変えるのと同じ考え方です。

  • ObjectThemeColorプロパティに、テーマを表す定数を指定する
  • RGBプロパティに、色を表す数値(RGB関数の返り値)を指定する
  • SchemeColorプロパティに、色を表すインデックス値を指定する

詳しくは、下記のページをご覧ください。

系列の色を設定する

次のコードは、1番目の系列(ここでは"田中")のマーカーを黒色にします。

Sub Sample()
    ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).Format.Fill.ForeColor.RGB = RGB(0, 0, 0)
End Sub

Excel 2003のコードは動くか

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でも動作します。