Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » ActiveSheet.Shapesからグラフの名前を取得する

ActiveSheet.Shapesからグラフの名前を取得する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel activesheet.shapes chartの名前を取得」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

アクティブなワークシート上のShapeの中から、グラフの名前だけを取得するには、どのようなコード書けばいいのかを探していた方による検索です。

[スポンサードリンク]

For Each~Nextループでアクティブシート上のグラフの名前を取得する

以下のSubプロシージャを実行すると、アクティブシート上のグラフの名前がイミディエイトウィンドウに出力されます。

Sub グラフの名前を取得する()
 Dim shp As Shape

 For Each shp In ActiveSheet.Shapes
  If shp.HasChart Then
   Debug.Print shp.Name
  End If
 Next shp
End Sub

アクティブシート上のすべてのShapeに対してFor Each~Nextループを回して、
 For Each shp In ActiveSheet.Shapes

Shapeがグラフを持っていたときに、
  If shp.HasChart Then

名前を出力しています。
   Debug.Print shp.Name

ローカルウィンドウでオブジェクト変数の中身を確認しましょう

「excel activesheet.shapes chartの名前を取得」
を検索なさった方への直接的な回答は上記のとおりですが、ステップ実行してローカルウィンドウで、オブジェクト変数・shpの中身を確認しておきましょう。

オブジェクト変数ですから、普通の変数よりもたくさんの情報にアクセスできるため、ローカルウィンドウを見慣れない方は戸惑ってしまうかもしれませんが、まずは上記のプロシージャで利用しているShape.HasChartプロパティを確認しましょう。

オブジェクト変数・shpに、グラフがセットされているときは、下図のようにHasChartプロパティがmsoTrueに、

ActiveSheet.Shapesからグラフの名前を取得するExcelマクロ

グラフではないShapeがセットされているときには下図のようにmsoFalseになっていることが確認できます。

ActiveSheet.Shapesからグラフの名前を取得するExcelマクロ

またNameプロパティには、上記のプロシージャでイミディエイトウィンドウに出力した、Shapeの名前が表示されていることも確認しましょう。

あとは、
  AutoShapeTypeプロパティ
  Typeプロパティ
あたりを確認しておくのがおすすめです。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » ActiveSheet.Shapesからグラフの名前を取得する

「グラフ・Chart」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.