如何在调整圆角矩形的大小时保留圆角,就像在 PowerPoint 中的 Adob​​e Illustrator 中一样?

如何在调整圆角矩形的大小时保留圆角,就像在 PowerPoint 中的 Adob​​e Illustrator 中一样?

我正在使用 PowerPoint 创建用户界面的模型。

如果使用具有尖角的规则矩形,则很容易。

当使用圆角矩形时,情况会很困难。

有没有办法在调整圆角矩形大小的同时保留其角的圆角?

目前,如果您调整圆角矩形的大小,圆角会相应变大/变小。这不是我想要的...我想只调整矩形的宽度和高度,而不改变圆角边框半径。就像在 CSS 中一样。或者就像在 Illustrator 中一样。但在 PowerPoint 中。

答案1

解决该问题需要 VBA 宏。

如果你以前从未使用过 VBA(你很幸运),你可以在以下 Microsoft 文章中了解该主题: PowerPoint 2010 中的 VBA 入门

您将需要以下两个宏:GetShapeRounding 和 SetShapeRounding。这两个宏都假设圆角矩形是当前选定的形状。第一个宏计算形状的半径大小(以点为单位),第二个宏将选定的形状设置为此半径。

使用宏的方法如下:

  1. 创建圆角矩形并选择它(或保持选中状态)
  2. 运行第一个宏来计算半径
  3. 调整圆角矩形的大小并保持选中状态
  4. 运行第二个宏,将其角设置为计算出的半径

以下是宏:

Dim sngRadius As Single ' Radius size in points

Sub GetShapeRounding()
Dim oSh As Shape
Set oSh = ActiveWindow.Selection.ShapeRange(1)
With oSh
  If .Width < .Height Then
    sngRadius = .Width * .Adjustments(1)
  Else ' .Width >= .Height
    sngRadius = .Height * .Adjustments(1)
  End If
End With
MsgBox sngRadius
Set oSh = Nothing
End Sub

Sub SetShapeRounding()
Dim oSh As Shape
Set oSh = ActiveWindow.Selection.ShapeRange(1)
With oSh
  If .Width < .Height Then
    .Adjustments(1) = sngRadius / .Width
  Else ' .Width >= .Height
    .Adjustments(1) = sngRadius / .Height
  End If
End With
Set oSh = Nothing
End Sub

在 PowerPoint 2010 上测试。

答案2

我认为使用现成的 PowerPoint 无法实现这一点。

您必须为其编写一个小的 VBA 宏。

有一些 PowerPoint 插件可让您统一角半径(为每个框指定相同的半径)。我们的插件就是其中之一:www.veodin.com/slideproof

答案3

好的,因为这个问题已经很老了,但是谷歌仍然可以在这里进行搜索,所以可以很快地回答一下,当你创建一个形状来管理“半径大小”时,Microsoft Powerpoint 2016-2018 在边框上有一个“可调整点”。

参考动图:

在此处输入图片描述

为所有非 VBA 爱好者欢呼!:)

相关内容