LineFormatオブジェクトのWeightプロパティ
Chart.SeriesCollection.Item.Format.Line.Weight
折れ線グラフで線の太さを設定するには、LineFormatオブジェクトのWeightプロパティに、太さを表す数値を指定します。次のサンプルコードでは、For文を使ってすべてのSeriesオブジェクトに対して設定し、グラフ全体の折れ線を太く設定しています。
折れ線グラフ全体の線を太くする
Sub Sample()
Dim i As Long
With ActiveSheet.ChartObjects(1).Chart.SeriesCollection
For i = 1 To .Count
.Item(i).Format.Line.Weight = 6
Next i
End With
End Sub
実行例


Seriesオブジェクト、Pointsコレクション
SeriesCollection.Points.Interior.ColorIndex
グラフの系列はSeriesオブジェクトで表されます。系列内の個々の要素は、Pointsコレクションで取得できます。系列内の特定の要素だけ色を変えるには、Pointオブジェクトの色を指定します。
系列内の特定の要素だけ色を変える
Sub Sample()
With ActiveSheet.ChartObjects(1).Chart
.SeriesCollection(1).Points(1) _
.Interior.ColorIndex = 1
End With
End Sub
実行例


ForeColorオブジェクトのObjectThemeColorプロパティ
オブジェクト.ForeColor.ObjectThemeColor
系列全体を塗りつぶす方法としては、塗りつぶしたい系列のSeriesオブジェクトを特定して、ForeColorオブジェクトのObjectThemeColorプロパティに、テーマの色を表す定数を指定するやり方があります。
なお、ForeColor.RGB = RGB(128, 54, 205) のように指定することで、RGB値で指定することもできます。
1番目の系列の色を変更する
Sub Sample()
ActiveSheet.ChartObjects(1).Chart. _
SeriesCollection(1).Format.Fill. _
ForeColor.ObjectThemeColor = _
msoThemeColorDark1
End Sub
実行例


ChartオブジェクトのSetElementメソッド
Chart.SetElement
グラフにデータラベルを表示するには、ChartオブジェクトのSetElementメソッドで、表示したいデータラベルの種類を指定します。種類を表す定数は、表の通りです。SetElementは、Excel 2007で追加されたメソッドです。
次のサンプルコードは、すべての系列に「外側の先端」のデータラベルを設定した上で、2番目の系列にのみ、「内側の軸寄り」のデータラベルを設定しています。
グラフにデータラベルを表示する
Sub Sample()
With ActiveSheet.ChartObjects(1).Chart
.SetElement msoElementDataLabelOutSideEnd
.SeriesCollection(2).Select
.SetElement msoElementDataLabelInsideBase
End With
End Sub
表●データラベルの種類を示す定数
上 |
msoElementDataLabelTop |
中央 |
msoElementDataLabelCenter |
下 |
msoElementDataLabelBottom |
内側の軸寄り |
msoElementDataLabelInsideBase |
内側の先端 |
msoElementDataLabelInsideEnd |
外側の先端 |
msoElementDataLabelOutSideEnd |
左側 |
msoElementDataLabelLeft |
右側 |
msoElementDataLabelRight |
表示しない |
msoElementDataLabelNone |
実行例


ChartオブジェクトのHasLegendプロパティ
Chart.HasLegend
Chart.Legend.Position
ChartオブジェクトのHasLegendプロパティにTrueを設定すると、グラフに凡例が表示されます。その上で、LegendオブジェクトのPositionプロパティに位置を表す定数を指定すると、凡例の配置を決められます。
凡例の位置を表す定数
グラフの上 |
xlLegendPositionTop |
グラフの下 |
xlLegendPositionBottom |
グラフの左 |
xlLegendPositionLeft |
グラフの右 |
xlLegendPositionRight |
グラフの輪郭線の右上隅 |
xlLegendPositionCorner |
グラフに凡例を表示して、グラフの上に配置する
Sub Sample()
With ActiveSheet.ChartObjects(1).Chart
.HasLegend = True
.Legend.Position = xlLegendPositionTop
End With
End Sub
実行例


ChartオブジェクトのHasTitleプロパティ
Chart.HasTitle
Chart.ChartTitle.Text
グラフにタイトルを表示するには、まずChartオブジェクトのHasTitleプロパティにTrueを設定します。これで「グラフタイトル」と書かれたタイトルの枠が追加されます。次に、
ChartTitleオブジェクトのTextプロパティに、表示させたい文字列を設定します。HasTitleプロパティがTrueではない(タイトル枠がない)状態でChartTitleオブジェクトを操作しようとすると、エラーになるので注意してください。
グラフにタイトルを追加する
Sub Sample()
With ActiveSheet.ChartObjects(1).Chart
.HasTitle = True
.ChartTitle.Text = “月別売上”
End With
End Sub
実行例


AddChartメソッド
Shapes.AddChart width, height
大きさを指定してグラフを挿入するには、AddChartメソッドの引数Widthと引数Heightに大きさを指定します。引数Widthと引数Heightは、Rangeオブジェクトと共通なので、セルの大きさに合わせて配置が可能です。 次のサンプルコードでは、E2~I12セルの範囲に合わせてグラフを挿入しています。
E2 ~I12セルの範囲に合わせてグラフを挿入
Sub Sample()
With Range(“E2”)
ActiveSheet.Shapes.AddChart _
Left:=.Left, Top:=.Top, _
Width:=Range(“E2:I12”).Width, _
Height:=Range(“E2:I12”).Height
End With
End Sub
実行例


AddChartメソッド
Shapes.AddChart グラフの種類
種類を指定してグラフを挿入するには、AddChartメソッドの引数に、グラフの種類を表す定数を指定します。主なグラフの種類を示す定数は、表の通りです。
この引数は、Type:=xlLineのように引数名を付けて指定するとエラーとなるので注意が必要です。定数だけを1番目の引数として指定してください。
円グラフを挿入する
Sub Sample()
ActiveSheet.Shapes.AddChart xlPie
End Sub
表●主なグラフの種類を示す定数
集合縦棒 |
xlColumnClustered |
積み上げ縦棒 |
xlColumnStacked |
集合横棒 |
xlBarClustered |
折れ線 |
xlLine |
マーカー付き折れ線 |
xlLineMarkers |
円 |
xlPie |
レーダー |
xlRadar |
バブル |
xlBubble |
面 |
xlArea |
散布図 |
xlXYScatter |
3-D 集合横棒 |
xl3DBarClustered |
実行例


ShapeオブジェクトのWidthプロパティ・Heightプロパティ
オブジェクト.Width / オブジェクト.Height
シートに挿入された画像のサイズを変更するには、ShapeオブジェクトのWidthプロパティやHeightプロパティを使います。それぞれ、幅と高さを数値(単位はポイント)で指定できます。画像に限らず、図形やグラフエリアのサイズも同様に変更できます。
ただし画像の場合、元画像の縦横比が変わってしまうと、見た目がおかしくなってしまうことがあります。縦横比を固定したい場合は、LockAspectRatioプロパティをTrueにした上で、サイズを変更します。この場合は、WidthまたはHeightのいずれかを設定するだけで、縦横比を維持したまま拡大/縮小することができます。
画像の縦横比を変えずに、幅70ポイントに変更する
Sub Sample()
With ActiveSheet.Shapes(1)
.LockAspectRatio = True
.Width = 70
End With
End Sub
実行結果


PicturesコレクションのInsertメソッド
Pictures.Insert ファイル名
シートに画像を挿入する最も簡単な方法は、PicturesコレクションのInsertメソッドを実行することです。Picturesコレクションは、古いExcelで使用されていたコレクションですが、互換性維持のために現在でも使用可能です。
PicturesコレクションのInsertメソッドを使うと、アクティブセルの左上隅に、画像の左上隅が一致するように画像が挿入されます。ただし、Excel 2007では、アクティブセルに左上隅が合わないので注意が必要です。
アクティブセルの位置に画像を挿入する
Sub Sample()
ActiveSheet.Pictures.Insert “C:¥JAM¥picture.jpg”
End Sub
実行例

