EXCEL で 列削除に伴うシェイプの移動(VBA)

エクセルVBAで不要列を自動的に何十行も削除する場合、たとえばシェープのテキストボックスを配置してあった場合に、その
テキストボックが、削除した列数に合わせて左に移動してくれないケースがある。
その場合は、列数を指定して、その位置までテキストボックスを移動するプログラムを書くことにより対応できた。

(変数「i」は削除開始列を計算するための変数)
left は シートの左端から図形(セル)の左端までの距離を表すプロパティ

‘不要列削除 

Set wksTarget = wkb.Worksheets(“予算”)

With wksTarget
.Activate
.Range(.Cells(4, i + 2), .Cells(45, 102)).Delete Shift:=xlShiftToLeft → 列削除
.Shapes(1).Left = .Cells(4, i + 16).Left → 図形を指定のセル位置へ移動
.Columns(i + 15).Hidden = True
.Range(“D2”).Select
End With