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

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

対象: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プロパティ
あたりを確認しておくのがおすすめです。

▼オブジェクトブラウザーの使い方と共に、VBAのオブジェクト式の文法・オブジェクト変数について解説する、マクロ経験者向けセミナー『Excel VBA講座 オブジェクト式解説編』の開催時に、案内を希望される方はメールアドレスをご登録ください。
オブジェクト式解説編

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

[スポンサード リンク]
[スポンサード リンク]

TrackBack:0

TrackBack URL

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

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

検索

最近じっくりと読まれている記事

.