今回はシートに作成済みの埋め込みグラフを取得する方法をご説明します。
すでに作成済みのグラフを取得する事で、そのグラフを操作する事ができますので使用頻度が高いと思います。
その他グラフ作成方法や、詳細設定方法については次の記事をご覧ください。
- グラフ操作 グラフの作成と詳細設定をする方法
- 折れ線グラフを作成する
- 棒グラフを作成する
- 散布図グラフを作成する
- 円グラフを作成する
- 複合グラフを作成する
- 2軸グラフを作成する
- 複合グラフに2軸設定する方法
- 作成済みのグラフのデータ範囲を変更する
1.グラフを指定して取得する
グラフを指定して取得する方法です。
グラフを指定して取得するには、「ChartObject」を使用します。
「ChartObject(1)」や、「ChartObject(“グラフ名”)」とグラフの番号か、グラフの名前で指定する事で取得出来ます。
次の様なデータとグラフがあるシートでB店のグラフを取得するサンプルコードです。
Sub Sample1()
Dim ChartObj As Object
Set ChartObj = ActiveSheet.ChartObjects(2)
With ChartObj
MsgBox .Name
End With
End Sub
次のようにグラフ名でも指定出来ます。
Sub Sample2()
Dim ChartObj As Object
Set ChartObj = ActiveSheet.ChartObjects("B店グラフ")
With ChartObj
MsgBox "TOP:" & .Top & " LEFT:" & .Left
End With
End Sub
2.ループでグラフを取得する
シートに複数のグラフが埋め込まれている場合、全てのグラフを取得したり、ループで特定のグラフを取得したりする事が出来ます。
ループするには「ChartObjects.Count」でグラフの数を取得してループします。
全てのグラフの名前を取得する
Sub Sample3()
Dim ChartInt As Long
Dim i As Long
Dim ChartName As String
ChartInt = ActiveSheet.ChartObjects.Count
For i = 1 To ChartInt
With ActiveSheet.ChartObjects(i)
ChartName = ChartName & .Name & vbCrLf
End With
Next i
MsgBox ChartName
End Sub
全てのグラフの中から特定のグラフを取得する
C店のグラフの場合グラフの位置とサイズを設定します。
Sub Sample4()
Dim ChartInt As Long
Dim i As Long
Dim ChartName As String
ChartInt = ActiveSheet.ChartObjects.Count
For i = 1 To ChartInt
With ActiveSheet.ChartObjects(i)
If .Name = "C店グラフ" Then
.Top = 200 '表示位置
.Left = 20 '表示位置
.Width = 500
.Height = 150
End If
End With
Next i
End Sub