Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 図形・オートシェイプの枠線を非表示にするExcelマクロ

図形・オートシェイプの枠線を非表示にするExcelマクロ

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

図形・オートシェイプの枠線を非表示にするExcelマクロ

このサイト・インストラクターのネタ帳のアクセスログを眺めていて、
「excelvba シェイプ 枠線なし」
「エクセル vba 図形 枠 消す」
といった検索キーワードに気づきました。

Excel VBAで、図形(いわゆるオートシェイプ)の、枠線を非表示・線なしの状態にするには、どのようなコードを書けばいいのかを探していた方による検索です。

Shapeの枠線を非表示にするサンプルマクロ

以下のSubプロシージャを実行すると、アクティブシート上の、全Shapeの枠線が非表示になります。

Sub 図形の枠線を非表示にする()
 Dim shp As Shape
 For Each shp In ActiveSheet.Shapes
  shp.Line.Visible = msoFalse
 Next
End Sub

アクティブシート上の全Shapeに対してFor Each~Nextループを回して、

For Each shp In ActiveSheet.Shapes

各ShapeのLineプロパティを使ってLineFormatオブジェクトを取得して、Visibleプロパティを設定しています。

 shp.Line.Visible = msoFalse

Shapeの枠線を非表示にするサンプルマクロ2

上記のマクロだと、すべてのShapeのLineFormat.Visibleプロパティを設定しているため、直線やコネクターが非表示になってしまいます。

これを真面目にすべて回避するとなると、なかなか面倒ですが、以下のようなプロシージャで、まあまあ、上手くいくのではないでしょうか。

Sub 図形の枠線を非表示にする_msoShapeMixedを除外()
 Dim shp As Shape
 For Each shp In ActiveSheet.Shapes
  If shp.AutoShapeType <> msoShapeMixed Then
   shp.Line.Visible = msoFalse
  End If
 Next
End Sub

上記のプロシージャでも、まだ上手くいかない場合は、除外する条件を探ってみてください。

最終更新日時:2021-12-16 04:58

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 図形・オートシェイプの枠線を非表示にするExcelマクロ

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

検索


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

.