Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjectsオブジェクト » DrawingObjects・描画オブジェクトの存在を確認するには?

DrawingObjects・描画オブジェクトの存在を確認するには?

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

VBAでDrawingObjects・描画オブジェクトの存在を確認するには?

「アクティブシートのdrawingobjectsの有無 マクロ」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

DrawingObjectsがアクティブなシートに存在するかどうかを調べるには、Excelマクロ・VBA(Visual Basic for Applications)でどのようなオブジェクト式を利用すればいいのかを探している方による、検索キーワードです。

[スポンサードリンク]

本当にDrawingObjectsを使う必要がありますか?

まず本当に、DrawingObjectsオブジェクトを使う必要があるかを、考えましょう。

DrawingObjectsはシート上の全描画オブジェクトを表しますが、古いタイプのオブジェクトです(オブジェクトブラウザーでは非表示に設定されていまます)。

最近のExcelの場合、描画オブジェクトはShapesやShapeRangeで取得できます。
DrawingObjectsオブジェクトを使わないと、上手く処理できないときにのみDrawingObjectsを使うことを考えるべきだと、私は考えています。

Shapesの有無を確認するサンプルマクロ

アクティブなシートに描画オブジェクトが存在するのかどうかを調べるのなら、Shapesコレクションオブジェクトを使えば十分なはずです。

以下のマクロを実行すると、アクティブシートに描画オブジェクトが存在しなければ「無いよ。」存在していれば「有ります。」というメッセージが、表示されます。


Sub Shapesの有無を判定する()
 If ActiveSheet.Shapes.Count = 0 Then
  MsgBox "無いよ。"
 Else
  MsgBox "有ります。"
 End If
End Sub

ShapesコレクションオブジェクトのCountプロパティを調べ、

VBAでDrawingObjects・描画オブジェクトの存在を確認するには?

「0」ならば描画オブジェクトは存在していない、「0」でなければ存在するという判定を行っています。

DrawingObjectsの有無を確認するサンプルマクロ

上記のとおり、描画オブジェクトの存在確認ならShapesを使えば十分なはずですが、どうしてもDrawingObjectsを使いたいのなら以下のようなマクロです。


Sub DrawinObjectsの有無を判定する()
 If ActiveSheet.DrawingObjects.Count = 0 Then
  MsgBox "無いよ。"
 Else
  MsgBox "有ります。"
End Sub

DrawingObjectsオブジェクトにもCountプロパティがありますから、

VBAでDrawingObjects・描画オブジェクトの存在を確認するには?

先にご紹介したマクロと同じく、「0」ならば存在しない「0」でなければ存在する、という判定を行っています。

DrawingObjectsよりShapesとShapeをますは理解しましょう

DrawingObjectsは古いオブジェクトのため、他のオブジェクトとは構造が大きく異なっています。

描画オブジェクトをVBAから操作したいという方で、まだExcelの基本的なオブジェクトモデルを理解できていないという方は、ShapesコレクションオブジェクトとShapeオブジェクトについて、まず理解することをおすすめしておきます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjectsオブジェクト » DrawingObjects・描画オブジェクトの存在を確認するには?

TrackBack:1

TrackBack URL
Ovalsを削除する from インストラクターのネタ帳
古いタイプのオブジェクトのひとつOvalsオブジェクトを削除するExcelマクロをご紹介しています。

Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjectsオブジェクト » DrawingObjects・描画オブジェクトの存在を確認するには?

「DrawingObjectsオブジェクト」の記事一覧

検索


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

.