対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016
このサイト・インストラクターのネタ帳のアクセスログを眺めていて、
「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
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
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
[スポンサードリンク]
- Newer:VBAでピボットテーブルの小計を表示しないように
- Older:条件付き書式の数式を取得するExcelマクロ
Home » エクセルマクロ・Excel VBAの使い方 » Shapesコレクション・Shapeオブジェクト » 図形・オートシェイプの枠線を非表示にするExcelマクロ