Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 576
  • Last Modified:

Align multiple objects in PowerPoint by defined space size

Hello,

How do you align multiple objects in PowerPoint by defined space size?

I am familiar with the alignment tools Distribute VerticallyDistribute Horizontally in MS PowerPoint (2013). However, when one of these tools is applied to a selected group of objects, the spacing between them depends only on the separation of the the two objects at the extremes.

However, suppose you want a very specifically-sized space between each object (ie you only really care about the spacing and not at all about how far down [or how far to the right] the list extends).

Is there any way to specify that?

Thanks
0
Steve_Brady
Asked:
Steve_Brady
2 Solutions
 
JSRWilsonCommented:
There's no way in the GUI to do this. You would need to code your own method.
0
 
Joanna_MillerCommented:
Not exactly, just as described above based on the extreme objects in the group ...

But
You can make the grid (  Alight > Grid Settings) with accurate dimensions and apportion objects on it wherever you need.
0
 
Echo_SCommented:
Because you can't do what you're asking in the UI, I will often draw a rectangle or even just lines on the slide to define the space. Almost by default these become the defining borders of the space (as long as everything else falls to the appropriate side to align or distribute to them) and I can select them with the other objects to define the space when I align/distribute.

ToolsToo.com has a set of PowerPoint add-ins with a similar tool you might want to check out. You set a "reference shape" that the objects align to. I think the Lite version will do this, but the full set of tools is definitely worth the $20 if you work in PPT often.
0
 
JSRWilsonCommented:
Some code to do this:

Sub Vspacer()
Dim osld As Slide
Dim oshpR As ShapeRange
Dim strSpace As String
Dim sngSpace As Single
strSpace = InputBox("Enter value for vertical space (inches")
If IsNumeric(strSpace) Then
sngSpace = 72 * Val(strSpace)
Dim i As Integer
On Error Resume Next
Set oshpR = ActiveWindow.Selection.ShapeRange
If Not oshpR Is Nothing And oshpR.Count > 1 Then
For i = 2 To oshpR.Count
oshpR(i).Top = oshpR(i - 1).Top + oshpR(i - 1).Height + sngSpace
Next i
End If
End If
End Sub

Sub Hspacer()
Dim osld As Slide
Dim oshpR As ShapeRange
Dim strSpace As String
Dim sngSpace As Single
strSpace = InputBox("Enter value for vertical space (inches")
If IsNumeric(strSpace) Then
sngSpace = 72 * Val(strSpace)
Dim i As Integer
On Error Resume Next
Set oshpR = ActiveWindow.Selection.ShapeRange
If Not oshpR Is Nothing And oshpR.Count > 1 Then
For i = 2 To oshpR.Count
oshpR(i).Left = oshpR(i - 1).Left + oshpR(i - 1).Width + sngSpace
Next i
End If
End If
End Sub
0
 
Steve_BradyAuthor Commented:
Thinks
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Tackle projects and never again get stuck behind a technical roadblock.
Join Now