マーカーを表示するには、MarkerStyleプロパティを使用する。書式は下記の通りだ。マーカーとは折れ線グラフ上に表示する円や四角の目印のことだと思っていい。
Seriesオブジェクト.MarkerStyle={表3の値}
Seriesオブジェクトは、グラフの系列を表すオブジェクトだ。SeriesオブジェクトはSeriesCollectionコレクションのメンバーだ。SeriesCollectionコレクションとは、指定されたグラフまたはグラフ種類グループにある、全てのSeriesオブジェクトのコレクションを指す。
メンバー | 説明 |
---|---|
xlMarkerStyleNone | なし |
xlMarkerStyleAutomatic | 自動 |
xlMarkerStyleCircle | 円形 |
xlMarkerStyleDiamond | 菱形 |
xlMarkerStyleX | X印付きの四角形 |
xlMarkerStyleStar | アスタリスク(*)付きの四角形 |
xlMarkerStyleSquare | 四角形 |
xlMarkerStyleTriangle | 三角形 |
xlMarkerStyleDot | 短い棒 |
xlMarkerStyleDash | 長い棒 |
xlMarkerStylePlus | プラス記号(+)付きの四角形 |
xlMarkerStylePicture | 画像 |
参照「XlMarkerStyle 列挙型 (Microsoft.Office.Interop.Excel) - MSDN」 |
マーカーを表示させるマクロはリスト7になる。
Sub 折れ線グラフにマーカーを表示する() : : ※ここまでリスト6と同じ : : Dim i As Long Dim mySeriesCollection As SeriesCollection Set mySeriesCollection = ActiveSheet.ChartObjects(1).Chart.SeriesCollection For i = 1 To mySeriesCollection.Count mySeriesCollection.Item(i).MarkerStyle = xlMarkerStyleCircle Next End Sub
SeriesCollection型の変数「mySeriesCollection」を宣言し、Setを使って追加された折れ線グラフのコレクションを代入しておく(8〜9行目)。Countプロパティで折れ線グラフの個数を取得し、その数だけ反復処理を行う(10〜12行目)。反復処理内で、折れ線グラフのマーカーに、「xlMarkerStyleCircle」と指定して、円形のマーカーを表示している(11行目)。
実行すると、図8のように表示される。
最後に、円グラフを表示して、その一部を切り離してみよう。円グラフの一部を分離するには、Explosionプロパティを使用する。書式は下記の通りだ。
Seriesオブジェクト.Explosion={切り離す距離}
{切り離す距離}は、半径に対する割合だ。「10」を指定すると半径に対する10%に当たる距離分、分離される。
円グラフを作成して「英語」の科目だけ20%分離してみよう。マクロはリスト8になる。
Sub 円グラフを作成して英語の科目を分離する() Range("C3:D11").Select If ActiveSheet.ChartObjects.Count > 0 Then ActiveSheet.ChartObjects(1).Delete Else Dim graphTitle As String graphTitle = Range("B2").Value ActiveSheet.Shapes.AddChart ActiveSheet.ChartObjects(1).Chart.ChartType = xl3DPie ActiveSheet.ChartObjects(1).Activate ActiveChart.SeriesCollection(1).Points(5).Select Selection.Explosion = 20 End If End Sub
円グラフなので、「1年」のデータだけ選択して表示させる(2行目)。ワークシート上に既にグラフが存在していれば削除する(3〜4行目)。
グラフの種類(ChartType)には「xl3Dpie」を指定して3Dの円グラフを表示している(10行目)。3D円グラフをアクティブにして(11行目)、3D円グラフのPointsコレクションの引数に、系列のインデックス番号、ここでは「英語」の「5」を指定している(12行目)。Explosionプロパティには「20」を指定して、半径に対して「英語」のエリアを20%分離している(13行目)。
要素はPointオブジェクトで表され、Pointオブジェクトの集合体はPointsコレクションになる。よって「Point(5)」と指定すると、円グラフの系列の5番目、すなわち「英語」を指すことになる。ちなみに、「国語」なら「Points(1)」、「数学」なら「Points(2)」という具合になる。
「円グラフの作成」ボタンに、リスト8のコードを関連付けて実行すると、図9のように表示される。
Excel 2016では、図10のような新しいグラフが追加されている。Excel 2016メニューの「挿入」→「おすすめグラフ」と選択して表示されるメニューから「全てのグラフ」を選択すると、図10の赤い四角で囲った新しいグラフが追加されている。
各自がExcel上のデータを選択した状態から、いろいろグラフの表示を試してみてほしい。
今回の解説で、グラフを表に追加すると、がぜん見栄えが良くなることがお分かりいただけただろう。グラフの種類は無数にあるので、各自が表2や「Excel 2016から新しく追加されたグラフ」を参考に、ChartTypeにいろいろなグラフを指定して試していただきたい。
次回は、「シートの操作」について解説する予定だ。「シート」とは何かを解説し、その参照方法やシートの移動、コピーなどのやり方を紹介する。
Excelでは単に1枚のシートだけを使用することはほとんどない。複数のシートを作り、「1月の売上」「2月の売上」……「12月の売上」というようにシートごとに管理していくのが普通だ。そのため当然のことだが、「シートの操作」もマクロで処理する必要性が出てくる。
「シートの操作」を覚えれば、Excel VBAの使い方に幅が増えること請け合いだ。頑張ってマスターしよう。
【2016/8/26】Windows 10、Excel 2016に対応しました。
PROJECT KySS 薬師寺 国安(やくしじ くにやす)
1950年生まれ。フリーVBプログラマ。高級婦人服メーカーの事務職に在職中、趣味でVBやActiveXに取り組み、記事を執筆。2003年よりフリー。.NETやRIAに関する執筆多数。Windowsストアアプリも多数公開中(約270本)。
Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。
Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。
Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。
PROJECT KySSは、1997年に薬師寺聖と結成したコラボレーション・ユニット
Copyright © ITmedia, Inc. All Rights Reserved.