Excelのあれこれ ~ 図形をグリッドに合わせるマクロ

前置き

図形をグリッド(枠線)に合わせるマクロを書きました。Excelにしろ、パワポにしろ、グリッド機能を使って描いてるのに、いつの間にかグリッドからズレてしまってイラつくことがありませんか? このマクロを使えば、少し軽減できるかもしれません。

マクロ

最寄りの角を探す(utils.bas)
Public Function uNearestCorner(p As Pos2D, c As Range) As Pos2D
  Dim x As Double
  Dim y As Double
  
  If Abs(p.x - c.left) > Abs(p.x - c.left - c.Width) Then
    x = c.left + c.Width
  Else
    x = c.left
  End If
  
  If Abs(p.y - c.top) > Abs(p.y - c.top - c.Height) Then
    y = c.top + c.Height
  Else
    y = c.top
  End If
  
  uNearestCorner.x = x
  uNearestCorner.y = y
End Function
選択図形を自動吸着(commands.bas)
Sub snapShapesToGrid()
  For Each s In ActiveWindow.Selection.ShapeRange
    Dim p As Pos2D
    p = uNearestCorner(uNewPos2D(s.left, s.top), s.TopLeftCell)
    s.left = p.x
    s.top = p.y
    
    p = uNearestCorner(uNewPos2D(s.left + s.Width, s.top + s.Height), s.BottomRightCell)
    s.Width = p.x - s.left
    s.Height = p.y - s.top
  Next
End Sub

このマクロは、図形を変形します。移動だけするようなオプションを付けた方が良いかもしれませんね。

Last modified:2014/07/21 14:18:34
Keyword(s):
References:[Windowsリテラシ]
This page is frozen.