種ヶ島

いろいろなエッセイを書いてます。

エクセル マクロで折れ線グラフや散布図 線の色や太さを指定


スポンサーリンク

折れ線グラフや散布図(ライン)の「線の色」と「線の幅」を指定するマクロを作りました。

エクセルは欧米人が作っているので、欧米人が「見やすい色使い」になっているようです。2007の色使いは、コントラストが弱く、系列の違いが分かりにくいので、ハイコントラストな色を指定するマクロを作りました。

目次リンク

 

内容

グラフを選択してからマクロを実行します。
プロットエリアは、灰色
系列1から順に
黒、赤、緑、青、黄色、紫、オレンジ、焦げ茶、の順になどなど『11色』を指定しています。
Excel2007で使用中です。

 

コードの内容は、

  1. グラフのプロットエリアの色を指定
  2. 系列の数をカウント
  3. 各系列の色を指定
  4. 色を指定したら「Exit Sub」で終了
  5. 「On Error Resume Next」でエラーがあったら強制的に次にすすむ

 

色は、
.ColorIndex = 46 と
.Color = RGB(102, 51, 0) の二種類で指定しています。
 カラーインデックスだと良さそうな色が足りなかったので、RGBで指定しています。

 

ColorIndexは、【エクセル カラーインデックス】で検索して下さい。
RGBは、色指定 → その他の色 → ユーザー設定で調べられます。

’ を消せば、ラインの太さも指定できますので、変更して下さい。

 

散布図の縦軸と横軸を入れ替えるマクロ - 種ヶ島

マクロで、グラフのタイトルと軸の名前を入力して効率化 - 種ヶ島


スポンサーリンク

 

グラフの線の色をまとめて変更するコード

 

Sub linecolor()

 

Dim sa As Long

Application.ScreenUpdating = False 'で画面を更新させないようにできます。

 

'色の変更
ActiveChart.PlotArea.Select 'プロットエリアを25%灰色
With Selection.Interior
.ColorIndex = 15
End With

 

sa = ActiveChart.SeriesCollection.count '系列数を取得

 

'ラインの太さを指定1
' With ActiveChart.SeriesCollection
' For i = 1 To .count
' .Item(i).Format.Line.Weight = 2.5
' Next i
' End With

 

'ラインの太さを指定2

' For i = 1 To sa
' ActiveChart.SeriesCollection(i).Select '系列を選択
' With Selection.Border
' .Weight = xlMedium '線の太さを指定
' End With
'Next

' xlHairline 細線(最も細い罫線)
' xlThin 極細
' xlMedium 普通
' xlThick 太線 (最も太い罫線)

 

'系列の色を指定
ActiveChart.SeriesCollection(1).Select '系列を選択 黒 1 赤3 緑4 青5
With Selection.Border
.ColorIndex = 1
End With
If sa = 1 Then Exit Sub
On Error Resume Next

ActiveChart.SeriesCollection(2).Select '系列を選択 黒 1 赤3 緑4 青5
With Selection.Border
.ColorIndex = 3
End With
If sa = 2 Then Exit Sub
On Error Resume Next

ActiveChart.SeriesCollection(3).Select '系列を選択 黒 1 赤3 明緑4 緑10 青5
With Selection.Border
.Color = RGB(0, 154, 0) 'RGB(255, 0, 0)
End With
If sa = 3 Then Exit Sub
On Error Resume Next

ActiveChart.SeriesCollection(4).Select '系列を選択 黒 1 赤3 緑4 青5
With Selection.Border
.ColorIndex = 5
End With
If sa = 4 Then Exit Sub
On Error Resume Next

ActiveChart.SeriesCollection(5).Select '系列を選択 黒1 赤3 緑4 青5 黄色6 オレンジ46
With Selection.Border
.ColorIndex = 6
End With
If sa = 5 Then Exit Sub
On Error Resume Next

ActiveChart.SeriesCollection(6).Select '系列を選択 黒1 赤3 緑4 青5 黄色6 オレンジ46
With Selection.Border
.Color = RGB(112, 48, 160) '紫
End With
If sa = 6 Then Exit Sub
On Error Resume Next

ActiveChart.SeriesCollection(7).Select '系列を選択 黒1 赤3 緑4 青5 黄色6 オレンジ46
With Selection.Border
.ColorIndex = 46
End With
If sa = 7 Then Exit Sub
On Error Resume Next

ActiveChart.SeriesCollection(8).Select '系列を選択 黒1 赤3 緑4 青5 黄色6 オレンジ46
With Selection.Border
.Color = RGB(102, 51, 0) '焦げ茶
End With
If sa = 8 Then Exit Sub
On Error Resume Next

 

ActiveChart.SeriesCollection(9).Select '系列を選択 黒1 赤3 緑4 青5 黄色6 オレンジ46
With Selection.Border
.Color = RGB(0, 176, 240) '水色
End With
If sa = 9 Then Exit Sub
On Error Resume Next

 

ActiveChart.SeriesCollection(10).Select '系列を選択 黒1 赤3 緑4 青5 黄色6 オレンジ46
With Selection.Border
.Color = RGB(192, 0, 0) '
End With
If sa = 10 Then Exit Sub
On Error Resume Next

 

ActiveChart.SeriesCollection(11).Select '系列を選択 黒1 赤3 緑4 青5 黄色6 オレンジ46

With Selection.Border
.Color = RGB(255, 102, 153) 
End With
If sa = 11 Then Exit Sub


End Sub


スポンサーリンク

 

グラフの線を太くしたり細くするコード

散布図の線を選択した状態でマクロを実行すれば、系列別(個別)に線を太くしたり細くできます。


Sub thick()
'2014-09-25
' グラフの線、目盛線、枠線を太くする

With Selection
.Format.Line.Weight = .Format.Line.Weight + 0.5
End With

End Sub


Sub thin()

With Selection
.Format.Line.Weight = .Format.Line.Weight - 0.5

End With

End Sub


スポンサーリンク

グラフの線の色を変更するコード

系列別(個別)に指定の色に変更できます。散布図グラフの線を選択した状態でマクロを実行します。

Sub lblack()

With Selection.Border
.ColorIndex = 1
End With

End Sub


Sub lgreen()

With Selection.Border
.Color = RGB(0, 154, 0)
End With

End Sub