Home » エクセルマクロ・Excel VBAの使い方 » 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 shp
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 shp
End Sub

上記のプロシージャでも、まだ上手くいかない場合は、
  If shp.AutoShapeType <> msoShapeMixed Then
のあたりを頑張って修正しましょうか。

最終更新日時:2019-06-11 13:27

[スポンサードリンク]

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

TrackBack:0

TrackBack URL

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

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

検索


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

.