Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » VBAでShapeがグラフかを判定するには-HasChartプロパティ

VBAでShapeがグラフかを判定するには-HasChartプロパティ

動作検証バージョン:64bit Windows 10 Pro + 32bit Excel(バージョン2205 ビルド15225.20204 Microsoft Store)

「vba グラフか図形か判定」
という検索キーワードでアクセスがありました。

シート上のShapeが、グラフなのかグラフではないのかを判定するにはどのようなコードを書けばいいのか探していた方による検索です。

本当にグラフかどうかだけを判定すればいいのか気になるところですが、参考になりそうなExcelマクロをご紹介しておきます。

[スポンサードリンク]

Shapeがグラフかどうか判定するサンプルマクロ

以下のExcelマクロを実行すると、アクティブシート上のShapeが順番に選択されて、「グラフです!」または「グラフではありません。」とメッセージボックスに表示されます。

Sub Shapeがグラフかどうか判定する()
 Dim shp As Shape
 For Each shp In ActiveSheet.Shapes
  shp.Select
  Application.ScreenUpdating = True
  If shp.HasChart Then
   MsgBox "グラフです!"
  Else
   MsgBox "グラフではありません。"
  End If
 Next
End Sub

Shapeオブジェクトに用意されているHasChartプロパティを使えば、

グラフを持つShapeかどうかを判定できます。

Shape.HasChartプロパティの戻り値は、「As MsoTriState」と定義されていますが、論理値と同じように扱えるので、

If shp.HasChart Then

というIf文にしています。

グラフではないShapeを順番に処理するサンプルマクロ

グラフではないShapeのみを順番に処理したいということであれば、以下のマクロが参考になるでしょう。

Sub グラフではないShapeを順番に選択する()
 Dim shp As Shape
 For Each shp In ActiveSheet.Shapes
  If Not shp.HasChart Then
   shp.Select
   Application.ScreenUpdating = True
   MsgBox "グラフではないShapeです。"
  End If
 Next
End Sub

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » VBAでShapeがグラフかを判定するには-HasChartプロパティ

「Shapesコレクション・Shapeオブジェクト」の記事一覧

検索


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

.