Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » ChartObject・埋め込みグラフの有無を調べる

ChartObject・埋め込みグラフの有無を調べる

対象:Excel 2010, Excel 2013, Windows版Excel 2016

グラフ

「vba chartobject有無判定」
「excel vba chartobject 存在するか」
「excel vba chartobjectsの有無を調べる」
といった検索でのアクセスが、意外とあることに気づきました。

ワークシート上に埋め込みグラフ(ChartObjectオブジェクト)が存在するかどうかをExcel VBAで調べるには、どのようなコードを書けばいいのか探していらしたのでしょう。

アクティブシートの埋め込みグラフ有無を調べるサンプルマクロ

以下のSubプロシージャが参考になるでしょう。

Sub 埋め込みグラフの有無確認_アクティブシート()
 If ActiveSheet.ChartObjects.Count = 0 Then
  MsgBox "アクティブシートに埋め込みグラフはありません。"
 End If
End Sub

ChartObjects.Countで埋め込みグラフの有無を確認できる

埋め込みグラフが存在しなければ、埋め込みグラフを表すChartObjectオブジェクトを単独のオブジェクトとして持つ、ChartObjectsコレクションオブジェクトのCountプロパティが0に、存在していれば1以上になります。

オブジェクトブラウザー:ChartObjects.Count

オブジェクト式「ActiveSheet.ChartObjects.Count」を、「Worksheets(1).ChartObjects.Count」とすれば、一番左のワークシートの埋め込みグラフ有無を確認できます。

「Worksheets("サンプルシート").ChartObjects.Count」とすれば、「サンプルシート」という名前のワークシートの埋め込みグラフ有無を確認できます。

アクティブブックの埋め込みグラフ有無を調べるサンプルマクロ

以下のようなマクロにすれば、アクティブなブックの埋め込みグラフ有無を調べられます。

Sub 埋め込みグラフの有無確認_アクティブブック()
 Dim cnt As Long: cnt = 0

 Dim ws As Worksheet
 For Each ws In Worksheets
  cnt = cnt + ws.ChartObjects.Count
 Next

 If cnt = 0 Then
  MsgBox "アクティブブックに埋め込みグラフはありません。"
 Else
  MsgBox "アクティブブックには「" & cnt & "」個の埋め込みグラフがあります。"
 End If
End Sub

最終更新日時:2022-06-23 10:17

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » ChartObject・埋め込みグラフの有無を調べる

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

検索


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

.