エクセル実践塾 > エクセル実践塾2007

オートシェイプの枠線の表示の有無を、マクロで切り替えたい

 

 

 

 

 

 

 

 

Shape.LineのVisibleプロパティの設定を変えることで、枠線を表示したり非表示にしたりすることができます

オートシェイプは、Shapeオブジェクトで表わされます。オートシェイプの枠線は、Shape.Lineとなり、そのVisibleプロパティをmsoTrueもしくはmsoFalseにすることで、枠線を表示したり非表示にしたりすることができます。

※マクロの作成に用いるVBE(Visual Basic Editor)の起動方法がわからない場合は、バックナンバーを参考にしてください。

@次のように記述すると、編集中のワークシートに描かれた、最初のオートシェイプの枠線が非表示になります。

Sub LineOff()
  ActiveSheet.Shapes(1).Line.Visible = msoFalse
End Sub

「Shapes(1)」は、最初に描かれたオートシェイプを表します。2番目に描いたオートシェイプは、「Shapes(2)」となります。

A処理対象となるオートシェイプは、名前で指定することもできます。

その場合には、あらかじめそのオートシェイプの名前を確認しておきます。

B指定ミスを防ぐために、名前をCtrl+Cキーでコピーし、Ctrl+Vキーでコードに貼り付けるようにします。

Sub LineOn()
  ActiveSheet.Shapes("スマイル 5").Line.Visible = msoTrue
End Sub

オートシェイプの名前は、ダブルコーテーション(")で囲んで指定します。

上記のようにマクロを記述すると、「スマイル 5」という名のオートシェイプの枠線が表示されます(すでに枠線が表示されている場合には、オートシェイプに変化はありません)。

C指定しやすいように、オートシェイプの名前を変えることもできます。

Sub LineOn2()
  ActiveSheet.Shapes("図1").Line.Visible = msoTrue
End Sub

わかりやすいオートシェイプ名にしておけば、マクロでの記述ミスもなくなります。