VBAを使ってグラフと図形を作ってみる
Excelにはグラフ作成機能と図形を描写するオートシェイプという機能が備わっています。VBAを使用することによって,より複雑なグラフや図形を作成することができるようになるので使いこなせればどんな分野でもかなり役立つと思います。
1. 線を引く(Rのablineと同じようなもの)
- linesプロシージャは線を引きます。
- lines_colorプロシージャは色を変更します。
- lines_styleプロシージャは線のスタイルを変更します。
Sub lines() '始点の座標(10,10) 終点の座標(200,200) Worksheets("Sheet1").Shapes.AddLine beginx:=10, beginy:=10, endx:=200, endy:=200 '始点の座標(200,10) 終点の座標(10,200) Worksheets("Sheet1").Shapes.AddLine beginx:=200, beginy:=10, endx:=10, endy:=200 End Sub Sub lines_color() Worksheets("Sheet1").Shapes.AddLine(beginx:=10, beginy:=10, endx:=200, endy:=200).Select Selection.ShapeRange.line.ForeColor.SchemeColor = 3 Worksheets("Sheet1").Shapes.AddLine(beginx:=200, beginy:=10, endx:=10, endy:=200).Select Selection.ShapeRange.line.ForeColor.SchemeColor = 5 End Sub Sub lines_style() Worksheets("Sheet1").Shapes.AddLine(beginx:=10, beginy:=10, endx:=200, endy:=200).line.DashStyle = msoLineDash Worksheets("Sheet1").Shapes.AddLine(beginx:=200, beginy:=10, endx:=10, endy:=200).line.DashStyle = msoLineDash End Sub
~線の種類を変える方法~
[オブジェクト.Line.DashStyle=msoLineDash]・・・赤い部分を変更することによって線のスタイルを変えることができます(指定できるものは以下を参照)。
2. 複数の図形を1つにまとめる(図形のグループ化と解除)
・ワークシートに描かれている全ての図形をグループ化する
Sub work_group() Worksheets("Sheet1").Shapes.SelectAll Selection.group End Sub
・グループ化した図形を解除するには次のようにします
Sub group_kaijyo() Worksheets("Sheet1").Shapes.SelectAll Selection.Ungroup End Sub
・全ての図形ではなく,任意の複数の図形を選びたい場合
Sub koko_group02() '2番目と3番目のシェイプを選択 Worksheets("Sheet1").Shapes.Range(Array(2, 3)).Select End Sub
3. 図形を動かしてみる(アニメーション)
VBAのコードを記述する前に動かす図形を何でもいいのであらかじめ作っておいてください。
Sub ani() Dim i As Integer For i = 1 To 5 With Worksheets("Sheet1").Shapes(1) .IncrementLeft increment:=10 .IncrementTop increment:=0 End With Application.Wait TimeSerial(Hour(Now()), Minute(Now()), _ Second(Now()) + 1) DoEvents Next i End Sub
*increment:=10の部分とincrement:=0の部分の数値を変更してみて下さい。図形の移動方向が変わります。
*Second(Now())+1の数値を2に変えれば2秒ごとに図が移動します。ただし指定できるのは整数のみです。