エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

【本日のミッション】

Excel VBA グラフのインデックス番号がどのようにして決定されるかを解明せよ。

ミッションの概要

Excel VBA グラフのインデックス番号がどのようにして決定されるのかを解明せよ、というのが今回のミッションです。

今回は、シート内の全グラフのインデックス番号を、グラフタイトルに表示させ、インデックス番号がどのように決定されるかを解明していきます。

グラフには名前を付けています。左上「グラフ 1」右上「グラフ 2」左下「グラフ 3」右下「グラフ 4」です。

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
グラフのタイトルに、「“Index:” & グラフのインデックス番号」を表示させます。
エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)
■■■スポンサーリンク■■■

プロシージャ

シート内全グラフのインデックス番号を、「“Index:” & グラフのインデックス番号」という表記で、グラフタイトルに表示させるコードです。

Sub グラフのインデックス番号をグラフタイトルに表示()

    '【変数】
    Dim c_ct As Long            'グラフカウント
    
    '1つ目のグラフから順に処理
    For c_ct = 1 To ActiveSheet.ChartObjects.Count
    
        'グラフインデックス番号をグラフタイトルに表示
        ActiveSheet.ChartObjects(c_ct).Chart.ChartTitle.Text = "Index:" & ActiveSheet.ChartObjects(c_ct).Index
    
    Next c_ct
    
End Sub

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

グラフのインデックス番号は、グラフの重なり順(配置順)で決まる

グラフのインデックス番号は、グラフオブジェクトの重なり順(配置順)で決まるようです。
オブジェクトの重なり順(配置順)を確認するには、[ホーム]タブ-[編集]-[検索と選択]ー[オブジェクトの選択と表示]をクリックします。

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

画面右に、「選択」ウィンドウが表示されます。

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

一番下の「グラフ 1」は、このシート内で最背面のグラフになります。
一番上の「グラフ 4」は、このシート内で最前面のグラフになります。

グラフのインデックス番号は、この「選択」ウィンドウのオブジェクトの並びによって決定されます。最背面のグラフからインデックス番号が「1、2、3、4・・・」となっています。

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

「選択」ウィンドウのグラフの並び順は、オブジェクトの重なり順になっています。
一番下の「グラフ 1」は、そのシートの中で最背面に配置されています。

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

同じグラフを使って、グラフオブジェクトの重なり順(配置順)を変えてみましょう。オブジェクトの配置順を変更する方法はいくつかあります。

「選択」ウィンドウで、移動させたいグラフ名を左クリックし、配置したい位置までドラッグします。(挿入位置に緑の横棒が表示されるので、そこで左クリックを離します。)

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

または、グラフを右クリックし、「最前面へ移動」「最背部へ移動」「前面へ移動」「背面へ移動」を使用して、オブジェクトの重なり順を変更します。

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

「グラフ 1」から「グラフ 4」の重なり順(配置順)を逆にしました。
この状態で、グラフのインデックス番号をグラフタイトルに表示させます。(「グラフのインデックス番号をグラフタイトルに表示」プロシージャを実行します。)

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

「選択」ウィンドウの一番下(最背面)に持ってきた「グラフ 4」から順に、インデックス番号が「1、2、3、4・・・」となっています。

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

同じグラフでも、重なり順(配置順)が違うと、インデックス番号が変わるんですね。

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

■■■スポンサーリンク■■■

グラフが削除されるとインデックス番号は繰り上げされる

グラフが削除されると、インデックス番号は繰り上げされます。

右上の「グラフ 2」(インデックス番号:2)を削除して、「グラフのインデックス番号をグラフタイトルに表示」プロシージャを実行してみます。

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
インデックス番号「2」のグラフ2が削除されると、
インデックス番号「1」のグラフ→グラフ2よりも背面のため変更なし
インデックス番号「3」のグラフ→インデックス番号「2」に変更
インデックス番号「4」のグラフ→インデックス番号「3」に変更
という結果になりました。

エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

ChartObject.Index プロパティ

ChartObjectオブジェクト のインデックス番号を返します。

参照

系列が1つのグラフを自動大量連続作成(Excel VBA)
「実行時エラー 1004」を出さずに、ワークシート内のグラフを「グラフ 元」以外全て削除(Excel VBA)
グラフの参照先を変えると勝手にグラフの色が変わる現象を解決せよ
系列が複数あるグラフを自動大量連続作成(Excel VBA)
n行毎の改ページ設定 「実行時エラー1004 RangeクラスのPageBreakプロパティを設定できません」の原因(Excel VBA)
参照データ数が異なる・参照先が変動する月別グラフを自動大量連続作成(Excel VBA)
複数系列・参照データ数が異なる・参照先が変動する月別グラフを自動大量連続作成(Excel VBA)
大量の画像やグラフ等のオブジェクトで画面表示が遅いのを解決(Excel)
エクセル シートに画像が存在するかどうか(有無)を調べる方法(Excel VBA)
エクセルシート上 全てのオブジェクト(画像・図形・グラフ等)を選択し、削除する(Excel VBA)
エクセルシート上のオブジェクト(図形・画像・グラフ等)の件数を数える方法(Excel VBA)
エクセル シートにグラフが存在するかどうか(有無)を調べる方法(Excel VBA)
エクセル シートに図形が存在するかどうか(有無)を調べる方法(Excel VBA)
エクセル 選択しているセル範囲に写真が存在しているか(有無)を確認(Excel VBA)
エクセル 選択しているセル範囲にグラフが存在しているか(有無)を確認(Excel VBA)
エクセル 選択しているセル範囲に図形が存在しているか(有無)を確認(Excel VBA)
エクセル 選択セル範囲の写真を削除する(Excel VBA)
エクセル 選択セル範囲のグラフを削除する(Excel VBA)
エクセル 選択セル範囲の図形を削除する(Excel VBA)
Excel VBAでワードを起動して文字を入力操作(Excel VBA)
Excel VBAでワードを起動してエクセルの表をワードに貼付け(Excel VBA)
Excel VBAでワードを起動して エクセルのエクセルの表を図としてワードに貼付け(Excel VBA)
Word コピー貼付けした図が白い枠だけ?図が表示されない現象を解決
Excel VBAでワードを起動して グラフをワードに図として貼付け(Excel VBA)
Excel VBAでワードを起動して 複数のグラフをワードに図として貼付け(Excel VBA)
エクセル VBA グラフにタイトルを追加する(Excel VBA)
エクセル VBA グラフのタイトルテキストを取・する(Excel VBA)
エクセル VBA グラフに凡例を追加する(Excel VBA)
エクセル VBA グラフオブジェクトの名前を変更する(Excel VBA)
エクセルVBA アクティブなグラフからChartObjectを変数にセット(Excel VBA)
エクセル VBA アクティブなグラフの名前を取得する(Excel VBA)
エクセル VBA【配色テーマ Office】セルの塗りつぶしのテーマの色・色の明暗を取得
エクセル VBA【配色テーマ Office 2007 – 2010】セルの塗りつぶしのテーマの色・色の明暗を取得
エクセル VBA セルの塗りつぶしに【配色テーマ Office】の色を設定(Excel VBA)
エクセル VBA セルの塗りつぶしに【配色テーマ Office 2007-2010】の色を設定(Excel VBA)
エクセル VBA【配色テーマ Office】セルの塗り テーマの色からRGB(赤・緑・青)を取得せよ
エクセル VBA【配色テーマ Office 2007-2010】セルの塗り テーマの色からRGB(赤・緑・青)を取得せよ
エクセル VBA 折れ線グラフの線色をテーマの色【Office】6色に変更する
エクセル VBA 折れ線グラフの線色をテーマの色【Office 2007 – 2010】6色に変更する
エクセル VBA 棒グラフ系列の塗りつぶし・線色をテーマの色【Office】6色に変更する
エクセル VBA 棒グラフ系列の塗りつぶし・線色をテーマの色【Office 2007 – 2010】6色に変更する
エクセル VBA マーカー付き折れ線グラフ系列の塗り・線色をテーマの色【Office】6色に変更する
エクセル VBA マーカー付き折れ線グラフ系列の塗り・線色をテーマの色【Office 2007-2010】6色に変更する
エクセル VBA マーカー付き折れ線グラフ系列の塗り・線色をテーマの色【Office】36色に変更する
エクセル VBA マーカー付き折れ線グラフ系列の塗り・線色をテーマの色【Office2007-2010】36色に変更する
エクセル VBA ChartObjectオブジェクトとChartオブジェクトとActiveChartプロパティの関係
エクセル VBA アクティブシート 全グラフのインデックス番号をタイトルに表示する(Excel VBA)
エクセル VBA アクティブなグラフのインデックス番号を取得(Excel VBA)
エクセル VBA グラフ インデックス番号の決まり方(Excel VBA)

■■■スポンサーリンク■■■