シート内のグラフ(画像)を等間隔に並べる

標数値は直書きです。本当はユーザーフォームを作ったほうが良い。 並べる順番は、「オブジェクトの選択と表示」で表示されるリスト順です。並び順を変えたい場合は、事前にソートしておいてください。

Sub 画像を並べる()
'大体で並べる(重なり回避程度)
'Shapes全部に行うので、画像グラフ混在シートでは不可
'
'Excel2013の場合、セルB1の座標は top=13.5、Left=54
    Dim i As Long
    Dim x As Long
    Dim y As Long
    Const start_top As Long = 13.5
    Const start_left As Long = 54
    Const offset_h As Long = 550 'グラフサイズにに合わせて設定
    Const offset_w As Long = 900 'グラフサイズに合わせて設定
    
'シート内のグラフ全部に同じ処理をする(グラフ選択不要)
    
    Dim myShape As Shape
    
    x = start_left
    y = start_top
    
    For i = 1 To ActiveSheet.Shapes.count
        Set myShape = ActiveSheet.Shapes(i)
            
        myShape.Left = x
        myShape.top = y
        y = y + offset_h    
                
        If i Mod 4 = 0 Then 'X方向に4個並べたらY方向を移動させる
            y = start_top
            x = x + offset_w
        End If
             
    Next i


End Sub

また、グラフオブジェクトをセルの枠に合わせたい場合は、下記を追加します。

        'オブジェクトの左上セルの枠線に位置をあわせる(画像が重なる場合がある)
        myShape.Left = myShape.topLeftCell.Left
        myShape.top = myShape.topLeftCell.top
  

改良の余地はたくさんあるのだけれど、とりあえずの間に合わせ、ということで。