7-08.グラフの操作:線の太さを変えるには?

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

 

実行例

 

 

 

2022年9月16日

7-07.グラフの操作:系列の一部だけ色を変えるには?

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

 

実行例

 

2022年9月16日

7-06.グラフの操作:系列の色を設定するには?

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

 

実行例

 

 

2022年9月16日

7-05.グラフの操作:データラベルを表示するには?

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

 

実行例

 

 

2022年9月15日

7-04.グラフの操作:凡例を表示するには?

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

 

実行例

 

2022年9月15日

7-03.グラフの操作:グラフにタイトルを追加するには?

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

 

実行例

 

2022年9月15日

7-02.グラフの操作:大きさを指定して挿入するには?

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

 

実行例

 

2022年9月15日

7-01.グラフの操作:グラフを挿入するには?

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

 

実行例

 

2022年9月15日

6-12.図形の操作:画像の大きさを変更するには?

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

 

実行結果

 

2022年9月15日

6-11.図形の操作:画像を挿入するには?

PicturesコレクションのInsertメソッド

Pictures.Insert ファイル名

シートに画像を挿入する最も簡単な方法は、PicturesコレクションのInsertメソッドを実行することです。Picturesコレクションは、古いExcelで使用されていたコレクションですが、互換性維持のために現在でも使用可能です。

 PicturesコレクションのInsertメソッドを使うと、アクティブセルの左上隅に、画像の左上隅が一致するように画像が挿入されます。ただし、Excel 2007では、アクティブセルに左上隅が合わないので注意が必要です。


アクティブセルの位置に画像を挿入する

Sub Sample()

ActiveSheet.Pictures.Insert “C:¥JAM¥picture.jpg”

End Sub

 

実行例

 

 

2022年9月15日