機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA > Excel 2007以降のグラフ

マーカーを設定する



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

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





このエントリーをはてなブックマークに追加