Excel VBA スパークラインを設定する

スポンサーリンク

セルにスパークラインを設定する方法

Excel 2010で追加されたスパークライン機能を使用すれば、簡易的なグラフをセル内に表示できます。

「折れ線」「縦棒」「勝敗」の3種類のスパークラインを設定でき、数値の変化を視覚化できます。

VBAでスパークラインを操作するにはセル範囲に設定されたスパークラインのグループを表すSparklineGroup【スパークライングループ】オブジェクトを操作します。

SparklineGroups
【スパークライングループス】コレクションのメソッド一覧

メソッド内容
Add指定した範囲に新しいスパークラインを追加します。
ClearGroupsスパークライングループを削除します。
Clear指定した単体のスパークラインを削除します。
Ungroup指定したセルまたはセル範囲のスパークライングループを解除します。
Group指定したセル範囲のスパークラインをグループ化します。

SparklineGroups
【スパークライングループス】コレクションの主なプロパティ一覧

プロパティ内容
Count指定してセル範囲のスパークライングループの数を返します。

SparklineGroups.Add
【スパークライングループスアド】メソッド

指定したセル範囲にスパークラインを設定するには、Range【レンジ】オブジェクトに含まれるスパークラインの集まりを表すSparklineGroups【スパークライングループス】オブジェクトのAdd【アド】メソッドを使用します。

Add【アド】メソッドにより、スパークラインを表すSparklineGroup【スペークライングループ】オブジェクトが返され、作成されます。

SparklineGroups.Add【スパークライングループスアド】メソッドの書式と設定値(引数)の説明

オブジェクト.SparklineGroups.Add( Type, SourceData )

  • オブジェクト(必須)
    スパークラインを設定するセルまたはセル範囲をRange【レンジ】オブジェクトで指定します。
  • Type【タイプ】(必須)
    スパークラインの種類をxlSparkType列挙型の定数で指定します。

    xlSparkType列挙型の定数
    定数内容
    xlSparkLine1折れ線スパークライン
    xlSparkColumn2縦棒スパークライン
    xlSparkColumnStacked1003勝敗スパークライン

    ※勝敗スパークラインは、正の値を勝ちとしてセルの半分より上に四角形を表示し、負の値を負けとしてセルの半分より下に四角形を表示します。数値の大きさを比較するものではなく、正か負かを表します。株価の変動や利益の状況などの視覚化に利用します。

  • SourceData【ソースデータ】(必須)
    スパークラインで使用するデータ範囲をA1形式の文字列で指定します。

売上推移の折れ線スパークラインを表示するコード

Sub 折れ線スパーク()
Range("E2:E7").SparklineGroups.Add _
Type:=xlSparkLine, SourceData:="B2:D7"
End Sub


売上推移の縦棒スパークラインを表示するコード例

Sub 縦棒スパーク()
Range("E2:E7").SparklineGroups.Add _
Type:=xlSparkColumn, SourceData:="B2:D7"
End Sub


SparklineGroups.ClearGroups
【スパークライングループスクリアグループス】メソッド

指定したスパークライングループ内のセルを含む、すべてのスパークライングループを削除するには、SparklineGroups【スパークライングルプス】コレクションのClearGroups【クリアグループス】メソッドを使用します。

SparklineGroups.ClearGroups
【スパークライングループスクリアグループス】メソッドの書式と設定値の説明

オブジェクト.SparklineGroups.ClearGroups

  • オブジェクト(必須)
    スパークライングループ内のセルまたは、セル範囲をRange【レンジ】オブジェクトで指定します。

スパークライングループを削除するコード

Sub スパークグループ削除()
Range("E2").SparklineGroups.ClearGroups
End Sub


SparklineGroups.Clear
【スパークライングループスクリア】メソッド

指定したセル範囲のスパークラインを削除するには、SparklineGroups【スパークライングルプス】コレクションのClear【クリア】メソッドを使用します。

SparklineGroups.Clear
【スパークライングループスクリア】メソッドの書式と設定値の説明

オブジェクト.SparklineGroups.Clear

  • オブジェクト(必須)
    削除したいスパークラインがあるセルまたは、セル範囲をRange【レンジ】オブジェクトで指定します。

単体のスパークラインを削除するコード例

Sub スパーク削除()
Range("E2").SparklineGroups.Clear
End Sub


SparklineGroups.Ungroup
【スパークライングループスアングループ】メソッド

選択したグループライングループのグループを解除するには、SparklineGroups【スパークライングループス】コレクションのUngroup【アングループ】メソッドを使用します。

SparklineGroups.Ungroup
【スパークライングループスアングループ】メソッドの書式と設定値の説明

オブジェクト.SparklineGroups.Ungroup

  • オブジェクト(必須)
    グループを解除するスパークラインのセルまたはセル範囲をRange【レンジ】オブジェクトで指定します。

E2セル~E7セルのスパークライングループのグループを解除するコード例

Sub グループ化解除()
Range("E2:E7").SparklineGroups.Ungroup
End Sub

SparklineGroups.Group
【スパークライングループスグループ】メソッド

選択したグループラインをグループ化するには、SparklineGroups【スパークライングループス】コレクションのGroup【グループ】メソッドを使用します。

SparklineGroups.Group【
スパークライングループスグループ】メソッドの書式と設定値の説明

オブジェクト.SparklineGroups.Group( Location )

  • オブジェクト(必須)
    グループ化するスパークラインのセル範囲をRange【レンジ】オブジェクトで指定します。
  • Location【ロケーション】(必須)
    グループ内の最初のセルをRange【レンジ】オブジェクトで指定します。

E2セル~E7セルのスパークラインをグループ化するコード例

Sub グループ化()
Range("E2:E7").SparklineGroups.Group Location:=Range("E2")
End Sub

SparklineGroups.Count
【スパークライングループスカウント】 プロパティ

指定したセル範囲のスパークライングループの数を取得するには、SparklineGroups【スペークライングループス】コレクションのCount【カウント】 プロパティを使用します。値の取得のみ可能です。

SparklineGroups.Count
【スパークライングループスカウント】プロパティの書式と設定値の説明

オブジェクト.SparklineGroups.Count

  • オブジェクト(必須)
    スパークラインのグループ数を取得したいセル範囲をRange【レンジ】オブジェクトで指定します。

スパークライングループの数をメッセージボックスで表示するコード例

Sub グループ数()
MsgBox (Range("E2:E7").SparklineGroups.Count)
End Sub


スパークラインのスタイルを変更するには、「スパークラインのスタイルを変更する」をご覧ください。

以上で、スパークラインを設定する方法についての解説を終了します。ありがとうございます。

スポンサーリンク

関連記事・広告