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
 
実行例

 
