VBAでスパークラインを利用する

スパークラインとは

スパークラインとは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でのスパークラインの削除は以下のようになります。

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

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

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

関連記事

サブコンテンツ

このページの先頭へ