「excel オブジェクトの選択と表示 oval消す」
という検索でアクセスがありました。
アクティブシート上の楕円・Ovalを非表示にする方法を探していた方による検索です。詳細は不明ですが、「oval」という単語が使われていることもあり、ここではExcel VBAのコードを2つご紹介しておきます。
AutoShapeTypeがmsoShapeOvalだったときに非表示にするサンプル
以下のSubプロシージャで、アクティブシートの楕円を非表示にできます。
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を非表示にするサンプル
上記のオーソドックスなコードを難なく理解できる方は、レガシーなオブジェクトを使って楕円を非表示にするコードも知っておくとイイかもしれません。
On Error GoTo ErrHandl
ActiveSheet.Ovals.Visible = False
Exit Sub
ErrHandl:
MsgBox "アクティブシートにはOvalsが存在しません。"
レガシーなオブジェクトである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
- Newer:Decimal型なら小数が近似値でないことをPythonで確認する
- Older:Word VBAで表をコピー&ペースト
Home » エクセルマクロ・Excel VBAの使い方 » DrawingObjects » VBAで楕円・Ovalsを非表示に