Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjects » VBAで楕円・Ovalsを非表示に

VBAで楕円・Ovalsを非表示に

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

「excel オブジェクトの選択と表示 oval消す」
という検索でアクセスがありました。

アクティブシート上の楕円・Ovalを非表示にする方法を探していた方による検索です。詳細は不明ですが、「oval」という単語が使われていることもあり、ここではExcel VBAのコードを2つご紹介しておきます。

[スポンサードリンク]

AutoShapeTypeがmsoShapeOvalだったときに非表示にするサンプル

以下のSubプロシージャで、アクティブシートの楕円を非表示にできます。

Sub msoShapeOvalを非表示に()
 Dim shp As Shape
 For Each shp In ActiveSheet.Shapes
  If shp.AutoShapeType = msoShapeOval Then
   shp.Visible = msoTrue
  End If
 Next
End Sub

アクティブシートの全図形に対してFor Each~Nextループを回して、
  Dim shp As Shape
  For Each shp In ActiveSheet.Shapes

Shape.AutoShapeTypeプロパティ定数msoShapeOvalだったときに、
  If shp.AutoShapeType = msoShapeOval Then

Shape.VisibleプロパティにmsoFalseを設定することで非表示にしています。
   shp.Visible = msoFalse

Ovalsを非表示にするサンプル

上記のオーソドックスなコードを難なく理解できる方は、レガシーなオブジェクトを使って楕円を非表示にするコードも知っておくとイイかもしれません。

Sub Ovalsを非表示に()
On Error GoTo ErrHandl

 ActiveSheet.Ovals.Visible = False

Exit Sub
ErrHandl:
 MsgBox "アクティブシートにはOvalsが存在しません。"

End Sub

レガシーなオブジェクトであるOvalsコレクションにも、表示状態を取得・設定できるVisibleプロパティが用意されているので、

Falseを設定することで非表示にしています。
  ActiveSheet.Ovals.Visible = False

Ovalsコレクションが存在しないシートがアクティブな状態で
  ActiveSheet.Ovals.Visible = False
が実行されると、実行時エラーが発生してしまうため、最低限のエラートラップを入れています。
  On Error GoTo ErrHandl
  Exit Sub
  ErrHandl:
   MsgBox "Ovalsが存在しません。"

Ovals.Visibleプロパティを使うコードを利用する場合は、ご紹介済みの記事等を参考に、Ovalsコレクション・Ovalオブジェクトについての理解を深めてからにすることを、おすすめします。

最終更新日時:2021-06-15 17:09

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjects » VBAで楕円・Ovalsを非表示に

「DrawingObjects」の記事一覧

検索


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

.