VBA|ワークシート上の図形を、セルの中央揃えをする方法

エクセルVBA VBAで画像・図・グラフの操作



ワークシート上に挿入した図形を、セルの中央に配置したい場合はどのようにVBAを記述すればよいのでしょうか。



.Top、.Left、.Width、.Height を使う

図形をセルの中央に揃える場合は、以下の手順で図形の位置を指定する必要があります。

  1. 図形の上端及び左端を「.Top」「.Left」で移動先セルに指定する。
  2. セル内の位置を「.Width」「.Height」で中央を指定する。

まずは、結論から言うと、図形をセルの中央揃えにするVBAは以下のようになります。

Sub 図形の中央ぞろえ()

   ActiveSheet.Shapes("ひし形 1").Left = Range("A2")
   ActiveSheet.Shapes("ひし形 1").Top = Range("A2")
   ActiveSheet.Shapes("ひし形 1").Left = Range("A2").Left + (Range("A2").Width - ActiveSheet.Shapes("ひし形 1").Width) / 2
   ActiveSheet.Shapes("ひし形 1").Top = Range("A2").Top + (Range("A2").Height - ActiveSheet.Shapes("ひし形 1").Height) / 2

End Sub

1 図形の上端及び左端を「.Top」「.Left」で移動先セルに指定する。

4行目の
  「ActiveSheet.Shapes(“ひし形 1”).Top = Range(“A2”)」
で、図形「ひし形1」の上端の位置をセル「A2」に指定します。
ひし形1の左端も同様です。

2 セル内の位置を「.Width」「.Height」で中央を指定する。

5行目の
  「ActiveSheet.Shapes(“ひし形 1”).Left = Range(“A2”).Left + (Range(“A2”).Width – ActiveSheet.Shapes(“ひし形 1”).Width) / 2」
で、図形「ひし形1」のセル「A2」内での位置を指定しています。
日本語で書くと
「ひし形1の左端の位置 = (A2の左端 + A2のセル幅-ひし形1の幅)÷2」
ということになります。
中央揃えにはよく使う記法ですので、覚えておいて損はないです。

 

コメント

タイトルとURLをコピーしました