本記事ではわたしがよく使う例文を紹介していきます。
決められたグラフを多用する、たくさんのグラフを編集したい方向けです。
少しマニアックな2軸のグラフ作成や、軸の細かな設定も紹介します。
さらには色や書式も同時に変更するサンプル例を紹介します。
グラフ全体を変える
よく使うグラフは使い回そう
多彩な色を使った処理が一瞬でできて便利
多彩な色を使った処理が一瞬でできて便利
Dim sample as String
Dim RGBi(20) As Variant
With ActiveChart.SeriesCollection(i)
.Format.Line.ForeColor.RGB = RGBi(r)
.Format.Fill.ForeColor.RGB = RGBi(r)
.MarkerBackgroundColor = RGBi(r)
.MarkerForegroundColor = RGBi(r)
.Smooth = False .MarkerStyle = xlCircle
.MarkerSize = 15 .Shadow = False
End With
★使う色は配列に登録しておくと便利
RGBi(1) = RGB(77, 77, 77)
RGBi(2) = RGB(0, 113, 188)
RGBi(3) = RGB(51, 153, 51)
RGBi(4) = RGB(224, 50, 83)
RGBi(5) = RGB(146, 7, 131)
グラフの軸の変更
文字の種類や大きさの変更はお手のもの
軸の最大、最小値などの数値も管理したい時に便利
With ActiveChart.ChartArea.Format.TextFrame2.
TextRange.Font
.Size = 18
.NameFarEast = "Arial Narrow"
.Name = "Arial Narrow"
End With
With ActiveSheet.ChartObjects(ChartName(1))
.Chart.SeriesCollection(1)
.name = ChartName(1)
.Values = jikux(1)
.XValues = jikuy(1)
.Format.Line.ForeColor.RGB = RGB(1)
.MarkerStyle = nomaker
.Format.Line.Visible = msoTrue
End With
メモリの最大値・最小値を指定
使いたい時に知っておくと便利
Dim x1MAX As Double
Dim y1MAX As Double
Dim x1MIN As Double
Dim y1MIN As Double
x1MAX = 8
y1MAX = 13
x1MIN = 6
y1MIN = 12
ActiveChart.Axes(xlValue).MinimumScale = y1MIN
ActiveChart.Axes(xlCategory).MinimumScale = x1MIN
ActiveChart.Axes(xlCategory).MaximumScale = x1MAX
ActiveChart.Axes(xlValue).MaximumScale = y1MAX
ActiveChart.Axes(xlCategory, xlSecondary).MinimumScale = x2MIN
ActiveChart.Axes(xlCategory, xlSecondary).MaximumScale = x2MAX
ActiveChart.Axes(xlValue, xlSecondary).MinimumScale = y2MIN
ActiveChart.Axes(xlValue, xlSecondary).MaximumScale = y2MAX
ActiveChart.Axes(xlCategory, xlSecondary).Select Selection.MajorTickMark = xlInside Selection.MinorTickMark = xlOutside
Selection.MinorTickMark = xlNone
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorText1
.ForeColor.TintAndShade = 0
.Transparency = 0
End With
ActiveChart.Axes(xlValue, xlSecondary).Select
Selection.MajorTickMark = xlInside
Selection.MinorTickMark = xlOutside
Selection.MinorTickMark = xlNone
With Selection.Format.Line .Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorText1
.ForeColor.TintAndShade = 0
.Transparency = 0
End With
2軸にする
使いたい時に知っておくと便利
ActiveChart.SeriesCollection(iend).Select
ActiveChart.SeriesCollection(iend).AxisGroup = 2
With ActiveChart
.HasAxis(xlValue, xlSecondary) = True
.HasAxis(xlCategory, xlSecondary) = True
End With
◼︎最大値・最小値を指定する
Dim x2MAX As Double
Dim y2MAX As Double
Dim x2MIN As Double
Dim y2MIN As Double
x1MAX = 8
y1MAX = 13
x1MIN = 6
y1MIN = 12
ActiveChart.Axes(xlCategory, xlSecondary).MinimumScale = x2MIN
ActiveChart.Axes(xlCategory, xlSecondary).MaximumScale = x2MAX
ActiveChart.Axes(xlValue, xlSecondary).MinimumScale = y2MIN
ActiveChart.Axes(xlValue, xlSecondary).MaximumScale = y2MAX
◼︎2軸目のメモリを指定する
ActiveChart.Axes(xlValue, xlSecondary).Select
Selection.MajorTickMark = xlInside
Selection.MinorTickMark = xlOutside
Selection.MinorTickMark = xlNone
With Selection.Format.Line
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorText1
.ForeColor.TintAndShade = 0
.Transparency = 0
End With
X軸・Y軸メモリを変更する
細かいところまで自動化したい人向け
○X軸のメモリ
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).HasMajorGridlines = True ActiveChart.Axes(xlCategory).MajorGridlines.Select
With Selection.Format.Line .Visible = msoTrue
.DashStyle = msoLineLongDash
.Weight = 0.25
End With
○Y軸のメモリ
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).HasMajorGridlines = True
ActiveChart.Axes(xlValue).MajorGridlines.Select
With Selection.Format.Line .Visible = msoTrue
.DashStyle = msoLineLongDash
.Weight = 0.25
End With
グラフエリア・プロットエリアを変更する
グフフエリアの色指定・線種変更で使える
ActiveChart.ChartArea.Select'グラフシートの色の選択'
Selection.Interior.ColorIndex = 2 '選択領域の色を白にする'
ActiveChart.PlotArea.Select'プロットエリアの色の選択'
Selection.Interior.ColorIndex = 2 '選択領域の色を白にする'
ActiveChart.ChartArea.Select
ActiveSheet.Shapes("").Line.Visible = msoFalse
ActiveChart.PlotArea.Select
With Selection.Border
.LineStyle = xlContinuous
EndWith
また、細かな説明は省いているので初心者の方はこちらを参考にしてくだい。
★オススメの参考書はこちら↓
【Excelで作業の自動化!マクロ・VBAを始める方へ】例文が豊富でオススメな本ランキング
Excel マクロ・VBA に関する本で私がお勧めする3冊を紹介します。
初心者でもすぐに使え、上級者にも例題集として1...
★汎用で使えるグラフ用のテンプレも紹介しています↓
【エクセル-マクロ活用集】グラフのサイズをcmでそろえて整列する例文Sub グラフ整列1()
Dim sheetname
Dim gragh(3)
sheetname = "グラフ整列"
grag...
【エクセル-マクロ活用集】一瞬でグラフが作れるテンプレ
エクセルでグラフを一瞬で作るためのVBA(マクロ)を紹介します。
以下のプログラムを使ってマクロを登録するだけで使えます
どれも日別・...
【Excel-VBA活用集】グラフ範囲を自動的に更新!複数の系列にも対応するサンプル皆さんはExcelでデータを追加したあと、グラフの範囲を拡大したい時どうしていますか。
やるべきグラフの数が少なくグラフ内の系列も少なけ...