Получите точное положение x / y направляющих для точного выравнивания фигур с помощью VBA - PullRequest
1 голос
/ 03 июля 2019

Есть ли способ получить точное - например, в десятичном формате - положение х / у направляющей с помощью VBA?

При получении положения направляющих в PPT через VBA результат не такой точный, как требуется. Десятичные разряды опущены. Это сбивает с толку меня, так как тип переменной "Single", который должен включать десятичные разряды.

Основная цель - «привязать» формы всех видов к направляющим с помощью VBA. Вариант использования: пользователь выбирает одну или несколько фигур и хочет выровнять их все по крайней левой направляющей в презентации, просто нажав кнопку.

Пока мой код работает нормально, единственная проблема заключается в том, что фигуры не точно совмещены с направляющими.

Sub align_left()
    Dim shp As Shape
    Dim gd As Guide
    With ActiveWindow.Selection
        On Error Resume Next
        x_gd = ActiveWindow.Width

        MsgBox x_gd

        For Each gd In ActivePresentation.SlideMaster.Guides
            If gd.Orientation = ppVerticalGuide And gd.Position < x_gd Then
                x_gd = gd.Position
            End If
        Next

        MsgBox x_gd

        For Each shp In .ShapeRange
            shp.Left = x_gd
        Next

    End With
End Sub

Ожидается: фигуры «привязываются» к направляющим. Фактически: фигуры перемещаются ЗАКРЫТО на направляющие, но в зависимости от положения направляющей между направляющими и формами все еще остается зазор.

...