スパークラインとは

スパークラインとはExcel 2010で追加された機能です。セル内に表示するグラフのことで、折れ線、縦棒、勝敗の3種類があります。

折れ線と縦棒はセルの値を範囲内の相対でグラフ化されます。勝敗はセルの値の大きさではなく正か負かでグラフ化されます。なぜ「正負」などの分かりやすい名前で命名しなかったのか疑問ですね。

以下のF列とG列のような表示になります。

なお、Excelでスパークラインを作成するには、スパークラインを設定するセル範囲を選択して、挿入タブ→スパークライン、から設定します。

設定時に以下の範囲設定ダイアログが表示されます。




スパークラインの追加

セルにスパークラインを追加するには、SparklineGroupsコレクションのAddメソッドを使います。

データは上の画像を例にします。

Rangeでスパークラインを追加する範囲を指定します。

Addメソッドの引数は2つあります。

1つ目:スパークラインの種類を設定します。折れ線(xlSparkLine)、縦棒(xlSparkColumn)、勝敗(xlSparkColumnStacked100)のいずれかを設定します。

2つ目:元データの範囲を指定します。

Rangeの範囲とAddメソッドの2つ目の引数の範囲の行数が違う場合はエラーになります。


スパークラインの削除

Excelでスパークラインを削除するには、スパークラインツールタブ→クリア を押します。Deleteキーで削除されないのが不便ですね。なぜこんな仕様にしたのでしょうか。MSの不可解仕様の1つですね。間違ってDeleteキーを押すことを回避するための仕様かもしれませんが、セルの入力も同じ話ですからCtrl + Z対応すればいいだけと思うのですけどね。

で、VBAでのスパークラインの削除は以下のようになります。

スパークラインにはグループの概念があります。

上記画像のように同じ種類のスパークラインが複数セルにある場合は同じグループとみなされます。

削除の際には以下のようにグループ単位なのかセル単位なのかを指定します。