Sub グラフ整列1()
Dim sheetname
Dim gragh(3)
sheetname = "グラフ整列"
gragh(1) = "sin"
gragh(2) = "cos"
gragh(3) = "tan"
nextProc:
For i = 1 To 3
Worksheets(sheetname).ChartObjects(gragh(i)).Select
Worksheets(sheetname).ChartObjects(gragh(i)).Cut
Worksheets(sheetname).Cells(10, (5 * i)).Select '★'
Worksheets(sheetname).Paste
Next
End Sub
皆さんはバラバラなグラフを整列したり、サイズを統一したい時どうしていますか。
数が少なければ一つ一つ処理していけば良いですが、位置の均等割り付けや
グラフの書式設定でサイズを揃えたりしていると意外に時間がかかるものです。
そこで、本記事ではマクロ初心者向けにワンボタンですべてのグラフを整列、サイズを変更、
さらには色や書式も同時に変更するサンプル例を紹介します。
写真のようにバラバラの位置にあるグラフを「ここへ移動」という位置に動かすマクロです。
★の数式を変えれば好きな位置・間隔で整列させることができます。
※シートの名前やグラフの名前はご自身で設定して使ってください。
こちらの写真が整列後のグラフです。
次にサイズの変更と整列を同時に行うマクロを紹介します。
★の部分を指定したいcmの数値に変えることで、
グラフのサイズを自由自在に変更することができます。
Sub サイズ変更とグラフ整列()
Dim sheetname
Dim gragh(3)
sheetname = "グラフ整列"
gragh(1) = "sin"
gragh(2) = "cos"
gragh(3) = "tan"
pix = 0.353 / 10
nextProc:
For i = 1 To 3
Worksheets(sheetname).ChartObjects(gragh(i)).Height = 7 / pix '★'
Worksheets(sheetname).ChartObjects(gragh(i)).Width = 10 / pix '★'
Worksheets(sheetname).ChartObjects(gragh(i)).Select
Worksheets(sheetname).ChartObjects(gragh(i)).Cut
Worksheets(sheetname).Cells(10, (5 * i)).Select
Worksheets(sheetname).Paste
Next
End Sub
写真のようにグラフのサイズ(7cm×10cm)と位置が綺麗にそろいます。
さらにマーカーの色やマーカーの種類も変更できます。
PRGB や PShape を好みのものに変えて使ってみてください。
Sub 色や書式とサイズ変更()
Dim sheetname
Dim gragh(3)
Dim PRGB(3) As Variant
Dim PShape(3) As Variant
sheetname = "グラフ整列"
gragh(1) = "sin"
gragh(2) = "cos"
gragh(3) = "tan"
pix = 0.353 / 10
PRGB(1) = RGB(0, 113, 188)
PRGB(2) = RGB(51, 153, 51)
PRGB(3) = RGB(224, 50, 83)
PShape(1) = xlCircle
PShape(2) = xlTriangle
PShape(3) = xlCross
nextProc:
For i = 1 To 3
Worksheets(sheetname).ChartObjects(gragh(i)).Height = 7 / pix
Worksheets(sheetname).ChartObjects(gragh(i)).Width = 10 / pix
Worksheets(sheetname).ChartObjects(gragh(i)).Select
With ActiveChart.SeriesCollection(1)
.MarkerStyle = PShape(i)
.MarkerSize = 7
.Format.Line.Weight = 2
.MarkerBackgroundColorIndex = xlColorNone
.MarkerForegroundColor = PRGB(i)
.Border.LineStyle = xlNone
End With
Next
End Sub
最後に自分が愛用するグラフのテンプレを紹介します。
マーカーの枠の色を白色にすることで少しだけおしゃれになります。
ぜひ試してみてください。
Sub グラフ整列初期設定()
Dim sheetname
Dim gragh(3)
Dim PRGB(5) As Variant
Dim PShape(4) As Variant
sheetname = "グラフ整列"
gragh(1) = "sin"
gragh(2) = "cos"
gragh(3) = "tan"
pix = 0.353 / 10
PRGB(1) = RGB(0, 113, 188)
PRGB(2) = RGB(51, 153, 51)
PRGB(3) = RGB(224, 50, 83)
PRGB(4) = RGB(0, 0, 255)
PRGB(5) = RGB(255, 255, 255)
PShape(1) = xlCircle
PShape(2) = xlTriangle
PShape(3) = xlCross
PShape(4) = xlDiamond
nextProc:
For i = 1 To 3
Worksheets(sheetname).ChartObjects(gragh(i)).Height = 7 / pix Worksheets(sheetname).ChartObjects(gragh(i)).Width = 10 / pix Worksheets(sheetname).ChartObjects(gragh(i)).Select
With ActiveChart.SeriesCollection(1)
.MarkerStyle = PShape(1)
.MarkerSize = 6
.MarkerBackgroundColor = PRGB(5)
.Format.Line.Weight = 0.1
.Format.Line.Visible = msoTrue
.Format.Line.ForeColor.RGB = PRGB(4)
.Format.Line.Weight = 0.1
.Format.Line.DashStyle = msoLineSolid
.Format.Fill.ForeColor.RGB = PRGB(4)
.MarkerForegroundColor = PRGB(5)
End With
Next
End Sub
グラフの設定はこの他にも軸の設定や2軸目の追加など
色々やれることがあります。
エクセルマクロについて勉強したい方向けに
買ってよかったおすすめの本も紹介しています。
ぜひ読んでいってください。