PowerPoint: Como reter o arredondamento de canto ao redimensionar retângulos arredondados, assim como no Adobe Illustrator?

2

Estou usando o PowerPoint para criar modelos de interfaces de usuário.

É fácil usar retângulos regulares com cantos agudos.

É difícil quando você usa retângulos arredondados.

Existe uma maneira de manter o arredondamento de um retângulo arredondado ao redimensioná-lo? Atualmente, se você redimensionar um retângulo arredondado, os cantos arredondados ficarão maiores / menores apropriadamente. Isso não é o que eu quero ... Eu quero redimensionar apenas a largura e a altura do retângulo, sem alterar o raio da borda arredondada. Assim como no CSS. Ou apenas como no Illustrator. Mas no PowerPoint.

    
por thenonhacker 10.11.2015 / 08:16

2 respostas

7

As macros VBA são necessárias para resolver o problema.

Se você nunca antes teve que trabalhar com a VBA (sorte de você), você pode aprender o assunto no artigo da Microsoft: Introdução ao VBA em PowerPoint 2010 .

Você precisará das seguintes duas macros: GetShapeRounding e SetShapeRounding. Ambas as macros assumem que o retângulo arredondado é o selecionado atualmente forma. A primeira macro calcula o tamanho do raio da forma em pontos e o segundo define a forma selecionada para este raio.

Usando as macros é por:

  1. Crie o retângulo arredondado e selecione-o (ou deixe-o selecionado)
  2. Executa a primeira macro para calcular o raio
  3. Redimensione o retângulo arredondado e deixe-o selecionado
  4. Execute a segunda macro para definir seus cantos para o raio calculado

Aqui estão as macros:

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

Testado no PowerPoint 2010.

    
por 14.11.2015 / 19:47
1

Não acho que isso seja possível com o PowerPoint pronto para uso.

Você teria que escrever uma pequena macro VBA para isso.

Existem suplementos do PowerPoint que permitem unificar o raio do canto (dê a cada caixa o mesmo raio). O nosso é um deles: www.veodin.com/slideproof

    
por 11.11.2015 / 08:04