VBA를 사용하여 PowerPoint에서 모양을 만들고 삽입하는 방법은 무엇입니까?

VBA를 사용하여 PowerPoint에서 모양을 만들고 삽입하는 방법은 무엇입니까?

며칠 전에 PowerPoint 슬라이드를 만드는 다소 평범한 작업을 자동화하고 싶었습니다. PowerPoint를 자동화할 때 일반적으로 슬라이드 및 도형 컬렉션으로 작업합니다. 슬라이드는 설명이 필요 없으며 모양은 텍스트 상자, 작업 버튼, 미디어 개체, 레이블, 그림, 설명선, 순서도 등을 포함한 거의 모든 것입니다. PowerPoint를 사용하여 기술을 보여줄 것이지만 일부 구문은 실제로 Microsoft Word 및 Excel에 적용할 수 있습니다.

요약하자면 PowerPoint에서 VBA 매크로 개발을 시작하기 전에 개발 탭을 활성화 해야 합니다 .

먼저 VBA에서 프레젠테이션 만들기 자습서에 표시된 대로 일부 슬라이드가 포함된 프레젠테이션을 자동으로 만드는 것부터 시작하겠습니다 .

이제 Shapes 작업을 시작할 수 있습니다. 먼저 Alt+ F11을 눌러 VBA 편집기를 엽니다. 이전 자습서를 따랐다면 모듈 목록에 모듈 1이 있어야 합니다(아래 참조).

VBA로 모양 작업

VBA로 텍스트 상자 추가

프레젠테이션의 첫 번째 슬라이드에 세로 텍스트 상자를 추가하는 것으로 시작하겠습니다. Module1에 다음 코드를 추가한 다음 저장 버튼(Ctrl+s)을 누르고 매크로를 실행합니다(F5 누르기 또는 하위/사용자 양식 실행 누르기).

Sub CreateTextBox()
Set MySlide = ActivePresentation.Slides(2)

    With MySlide.Shapes
        .AddTextbox(Orientation:=msoTextOrientationVertical, _
         Left:=90, Top:=200, Width:=80, _
         Height:=200).TextFrame.TextRange.Text _
        = ("This is my vertical text box")

End With

End Sub

VBA를 사용하면 텍스트 상자 크기를 훨씬 쉽게 조정할 수 있습니다. 이 경우 두 번째 슬라이드에서 첫 번째 모양의 크기를 조정합니다. 필요에 따라 자유롭게 수정할 수 있습니다.

Sub ResizeText()
Set MyShape = ActivePresentation.Slides(2).Shapes(1)

'Add your required dimensions as needed below
   With MyShape
         .Width = 200
         .Height = 35

End With
End Sub

VBA를 사용한 텍스트 효과

이제 프레젠테이션의 모든 슬라이드에 텍스트 상자를 추가한다고 가정해 보겠습니다. 이번에는 좀 더 시각적으로 매력적입니다. 이를 위해 VBA를 사용하여 프레젠테이션의 하나 이상의 슬라이드에 포함할 수 있는 사용자 지정 텍스트 효과를 만듭니다. 먼저 프레젠테이션 슬라이드를 반복한 다음 필요에 따라 텍스트 효과를 추가합니다.

Sub SetEffects()

Dim i As Integer

For i = 1 To ActivePresentation.Slides.Count
    ActivePresentation.Slides(i) _
    .Shapes.AddTextEffect msoTextEffect12, "Draft for Review", _
    "Segoe UI", 32, msoTrue, msoTrue, 650, 50
Next

End Sub

다음은 결과입니다 ;-):

VBA를 사용하여 PowerPoint에서 모양을 만들고 삽입하는 방법은 무엇입니까?

이 특정 결과를 달성하기 위해 간단한 워터마크를 사용할 수도 있습니다.

VBA가 포함된 PowerPoint 설명선

다음 예는 프레젠테이션에 콜아웃을 추가하는 것입니다. 이 예에서는 두 번째 슬라이드에 설명선을 추가합니다.

Sub CreateCallout()

ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _  Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"

End Sub

도형 속성 설정

도형의 많은 서식 지정 속성은 Shape  또는  ShapeRange 개체 에 직접 적용되는 속성에 의해 설정되지 않습니다   . 대신 관련 모양 특성은   모양의 채우기와 관련된 모든 속성을 포함하는  FillFormat 개체 또는  연결된 OLE 개체에 고유한 모든 속성을 포함하는 LinkFormat 개체와 같은 보조 개체 아래에 그룹화됩니다. 모양의 속성을 설정하려면 먼저 관련 모양 특성 집합을 나타내는 개체를 반환한 다음 반환된 해당 개체의 속성을 설정해야 합니다.  예를 들어 다음 예제와 같이 Fill 속성을 사용하여  FillFormat 개체를  반환한   다음  FillFormat 개체  의  ForeColor 속성을 설정하여 지정된 모양에 대한 채우기 전경색을 설정합니다.

VB

Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

동시에 여러 셰이프에 속성 또는 메서드 적용

사용자 인터페이스에는 여러 모양을 선택하여 수행할 수 있는 몇 가지 작업이 있습니다. 예를 들어 여러 모양을 선택하고 모든 개별 채우기를 한 번에 설정할 수 있습니다. 단일 모양을 선택한 경우에만 수행할 수 있는 다른 작업도 있습니다. 예를 들어 단일 도형을 선택한 경우에만 도형의 텍스트를 편집할 수 있습니다.

Visual Basic에는 도형 집합에 속성과 메서드를 적용하는 두 가지 방법이 있습니다. 이 두 가지 방법을 사용하면 사용자 인터페이스에서 동일한 작업을 수행할 수 있는지 여부에 관계없이 다양한 모양의 단일 모양에 대해 수행할 수 있는 작업을 수행할 수 있습니다.

  • 작업이 사용자 인터페이스에서 선택한 여러 셰이프에 대해 작동하는 경우   작업할 셰이프가 포함된  ShapeRange 컬렉션을 구성하고 적절한 속성과 메서드를 ShapeRange  컬렉션에 직접 적용하여 Visual Basic에서 동일한 작업을 수행할 수 있습니다.

  • 사용자 인터페이스에서 선택한 여러 모양에 대해 작업이 작동하지 않는 경우에도 Shapes  컬렉션  또는   작업하려는 모양이 포함된 ShapeRange 컬렉션을 통해 반복하고 적절한 속성을 적용하여 Visual Basic에서 작업을 수행할 수 있습니다.  컬렉션의 개별  Shape 개체에 대한 메서드입니다.

Shape  개체 및  ShapeRange 컬렉션 에 적용되는 많은 속성과 메서드는   특정 종류의 도형에 적용되면 실패합니다. 예를 들어   텍스트를 포함할 수 없는 도형에 TextFrame 속성을 적용하면 실패합니다. ShapeRange 컬렉션 의 각 셰이프에 특정 속성이나 메서드가 적용될 수 있다는 확신이 없다면  ShapeRange 컬렉션  에 해당 속성이나 메서드를 적용하지 마세요   . 이러한 속성이나 메서드 중 하나를 모양 컬렉션에 적용하려면 컬렉션을 반복하고 각 개별 모양을 테스트하여 속성이나 메서드를 적용하기 전에 적절한 모양 유형인지 확인해야 합니다.

ShapeRange 컬렉션에 속성 또는 메서드 적용

사용자 인터페이스에서 선택한 여러 모양에 대해 동시에 작업을 수행할 수 있는 경우  ShapeRange  컬렉션을 구성한 다음 여기에 적절한 속성이나 메서드를 적용하여 프로그래밍 방식으로 동일한 작업을 수행할 수 있습니다. 다음 예제에서는 "Big Star" 및 "Little Star"라는 도형을 포함하는 모양 범위를 구성하고 여기에 그라데이션 채우기를 적용하고 그라데이션 채우기를 적용합니다.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
Set myRange = myDocument.Shapes _ 
    .Range(Array("Big Star", "Little Star")) 
myRange.Fill.PresetGradient msoGradientHorizontal, _ 
    1, msoGradientBrass

다음은 ShapeRange 컬렉션 에 적용될 때 속성과 메서드가 어떻게 작동하는지에 대한 일반적인 지침입니다   .

  • 컬렉션에 메서드를 적용하는 것은   해당 컬렉션의 각 개별 Shape 개체에 메서드를 적용하는 것과 같습니다.

  • 컬렉션의 속성 값을 설정하는 것은 해당 범위에 있는 각 개별 모양의 속성 값을 설정하는 것과 같습니다.

  • 상수를 반환하는 컬렉션의 속성은 컬렉션의 모든 모양이 해당 속성에 대해 동일한 값을 갖는 경우 컬렉션의 개별 모양에 대한 속성 값을 반환합니다. 컬렉션의 모든 모양이 속성에 대해 동일한 값을 갖지 않는 경우 "혼합" 상수를 반환합니다.

  • 간단한 데이터 유형(예:  LongSingle 또는  String )을 반환하는 컬렉션의 속성은 컬렉션의 모든 셰이프가 해당 속성에 대해 동일한 값을 갖는 경우 개별 셰이프에 대한 속성 값을 반환합니다.

  • 일부 속성의 값은 컬렉션에 정확히 하나의 모양이 있는 경우에만 반환되거나 설정될 수 있습니다. 컬렉션에 셰이프가 두 개 이상 있으면 런타임 오류가 발생합니다. 이는 일반적으로 사용자 인터페이스에서 동일한 작업이 단일 모양(예: 모양의 텍스트 편집 또는 자유 형식의 점 편집)에서만 가능한 경우 속성을 반환하거나 설정하는 경우입니다.

앞의 지침은 FillFormat 개체  와 같은  ShapeRange 컬렉션 의 보조 개체 아래에 그룹화된 도형의 속성을 설정할 때도 적용됩니다   . 보조 개체가 사용자 인터페이스에서 선택한 여러 개체에 대해 수행할 수 있는 작업을 나타내는 경우 ShapeRange 컬렉션에서 개체를 반환하고 해당 속성을 설정할 수 있습니다   . 예를 들어  Fill 속성을 사용하여 ShapeRange 컬렉션  에 있는 모든 모양의 채우기를 나타내는  FillFormat 개체를  반환  할 수 있습니다  . 이 FillFormat 개체 의 속성을 설정하면  ShapeRange 컬렉션  의 모든 개별 모양에 대해 동일한 속성이 설정됩니다   .

Shapes 또는 ShapeRange 컬렉션을 통해 반복

사용자 인터페이스에서 여러 셰이프를 선택한 다음 명령을 사용하여 동시에 여러 셰이프에 대한 작업을 수행할 수 없는 경우에도 Shapes 컬렉션  또는  셰이프   가 포함된 ShapeRange 컬렉션을 반복하여 프로그래밍 방식으로 동일한 작업을 수행할 수 있습니다. 작업하고   컬렉션의 개별 Shape 개체에 적절한 속성과 메서드를 적용하려고 합니다. 다음 예제에서는 모든 도형을 반복하고 도형인 각 도형에 텍스트를 추가합니다. 도형인 각 도형에 텍스트를 추가합니다.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
For Each sh In myDocument.Shapes 
    If sh.Type = msoAutoShape Then 
        sh.TextFrame.TextRange.InsertAfter " (version 1)" 
    End If 
Next

다음 예제에서는  활성 창에서 현재 선택된 모든 도형을 포함하는 ShapeRange  컬렉션을 생성하고 텍스트를 포함할 수 있는 컬렉션의 각 도형에 텍스트를 설정합니다.

VB

For Each sh in ActiveWindow.Selection.ShapeRange
    If sh.HasTextFrame Then
        sh.TextFrame.TextRange = "Initially selected"
    End If
Next

모양 범위에서 모양 정렬, 배포 및 그룹화

Align  및  Distribute 메서드를 사용하여   도형 세트를 서로 기준으로 또는 해당 도형이 포함된 문서를 기준으로 배치합니다. 그룹  방법 또는  재그룹 방법을 사용하여   모양 집합에서 단일 그룹화된 모양을 만듭니다.


생강 2.7.53.0

생강 2.7.53.0

Ginger는 무료 맞춤법 및 문법 검사기입니다.

블록

블록

블록스는 초등학교 3학년 학생들의 감지 능력과 시력 능력을 연습할 수 있는 지적 게임으로, 교사들이 IT 교육 지원 프로그램에 포함시키고 있습니다.

프레지 6.26

프레지 6.26

Prezi는 온라인과 오프라인 모두에서 디지털 프레젠테이션을 만들 수 있는 무료 애플리케이션입니다.

Mathway

Mathway

Mathway는 기기에 내장된 계산기보다 더 복잡한 도구가 필요한 모든 수학 문제를 해결하는 데 도움을 줄 수 있는 매우 유용한 앱입니다.

어도비 프리젠터

어도비 프리젠터

Adobe Presenter는 Microsoft Windows 플랫폼에서 Microsoft PowerPoint 플러그인으로 사용할 수 있도록 Adobe Systems에서 출시한 e-Learning 소프트웨어입니다.

큰부리새 2.3.0

큰부리새 2.3.0

Toucan은 교육 기술 플랫폼입니다. 일상적인 웹사이트를 탐색하면서 새로운 언어를 배울 수 있습니다.

ENetViet 24.2

ENetViet 24.2

eNetViet은 부모와 자녀가 공부하는 학교를 연결하여 자녀의 현재 학습 상황을 명확하게 이해할 수 있도록 도와주는 애플리케이션입니다.

듀오링고

듀오링고

듀오링고 - 무료로 언어 배우기, 간단히 듀오링고는 다양한 언어를 배우고 연습할 수 있는 교육 프로그램입니다.

신속한 타이핑

신속한 타이핑

RapidTyping은 타이핑 속도를 향상시키고 철자 오류를 줄이는 데 도움이 되는 편리하고 사용하기 쉬운 키보드 교육 도구입니다. 다양한 수준으로 구성된 수업을 통해 RapidTyping은 기존 기술을 입력하거나 향상시키는 방법을 가르쳐줍니다.

수학 유형 7.4.10.53

수학 유형 7.4.10.53

MathType은 개발자 Design Science(Dessci)의 대화형 방정식 소프트웨어로, 이를 통해 워드 프로세싱, 프레젠테이션, eLearning 등에 대한 수학적 표기법을 생성하고 주석을 달 수 있습니다. 이 편집기는 TeX, LaTeX 및 MathML 문서 생성에도 사용되었습니다.