랜덤으로 추첨할 때 쓰임새가 많을 것 같아 글을 올립니다.

 

 

위 캡쳐처럼 횐전판을 돌려서 추첨하는 회전룰렛을 만드는 방법입니다.

 

 

첨부파일을 다운받아 매크로를 허용하고 엽니다.

Download the following pptm file.

Be sure to enable macro contents when you open it

 

 

Rotate1.pptm
다운로드

 

이미 있는 슬라이드는 참고용으로 테스트해보시기 바랍니다.

 

 

만드는 과정입니다.

 

1. 일단 빈 슬라이드를 하나 만듭니다.

 

2. Alt-F8을 누르고 AddBlockArc를 선택해서 부채꼴을 자동으로 생성합니다.

만들고 싶은 부채꼴모양의 개수를 입력합니다.

 

 

개수는 현재 2개에서 360개까지로 제한했습니다.

물론 시간이 걸리지만 3600개를 만들 수도 있습니다.

 

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
'자동으로 부채꼴을 그려줍니다.
Sub AddBlockArc()
    Dim sld As Slide
    Dim i As Integer
    Dim w As Single, h As Single
    Dim Max As Integer
    Dim user As String
    Dim Adj3 As Double
          
    'Max = 5     ' 만들 부채꼴 개수
    On Error Resume Next
    Max = InputBox("현재 슬라이드에 생성할 부채꼴의 개수를 입력하세요(2 ~ 360).""부채꼴 생성"5)
    Max = Int(Max)
    If Max < 2 Or Max > 360 Then MsgBox "허용 범위를 초과했습니다.": Exit Sub
    On Error GoTo 0
        
    Adj3 = 0.4  '반지름 길이( 0~0.5사이의 소수)
    
    w = ActivePresentation.PageSetup.SlideWidth
    h = ActivePresentation.PageSetup.SlideHeight
    Randomize
    Set sld = ActiveWindow.View.Slide
    For i = 1 To Max
        With sld.Shapes.AddShape(msoShapeBlockArc, w / 2 - h / 20, h, h)
            .Name = "Circle" & i
            .Adjustments(1= (i - 1* (360 / Max) + 270
            .Adjustments(2= .Adjustments(1+ (360 / Max)
            .Adjustments(3= Adj3
            .Fill.ForeColor.RGB = RGB(128 + 128 * Rnd, 128 + 128 * Rnd, 128 + 128 * Rnd)
            .Line.Visible = msoFalse
            .Select msoFalse
        End With
    Next i
    ActiveWindow.Selection.ShapeRange.Group.Name = "Arc_Group"
End Sub
 
cs

 

 

자동으로 만들어서 회전시키고 색깔도 채워주니

부채꼴 그리는 수고를 덜어줍니다.

(이 맛에 매크로를 돌리는 거죠^^)

 

 

3. 각 부채꼴에 선택항목을 입력하고

빨간색 세모를 그려주고

가운데에 정지/재시작 버튼을 넣어줍니다.

 

 

4. 다음 Arc_Group 도형을 회전애니메이션을 추가합니다.

그리고 자동으로 시작하게 하고 무한반복시킵니다.

속도는 0.5초이하로 빠르게 하는 것이 좋습니다.

 

 

5. 마지막으로 시작/정지 버튼에 슬라이드쇼를 멈췄다가 재생시키는 매크로를 걸어줍니다.

가운데 버튼을 선택하고 삽입 -실행에서 Toggle 매크로입니다.

 

물론 도형 트리거를 이용해 회전을 시작시킬 수도 있으나 

멈추는데 문제가 있어 매크로를 이용하겠습니다.

 

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
'슬라이드쇼를 잠시 멈추고 다시 시작합니다.
Sub Toggle()
 
    With SlideShowWindows(1).View
        If .State = ppSlideShowRunning Then
            .State = ppSlideShowPaused
        Else
            .State = ppSlideShowRunning
        End If
    End With
    
End Sub
 
cs
 

 

 

6.완성입니다.

 

추가로 첨부파일 예제처럼

해당 회전판을 눌렀을 때 구체적인 당첨화면으로 하이퍼링크를 걸 수도 있겠습니다.

 

 

******************************************

 

1. 매크로 없이 만드는 방법: 

  1-1. 슬라이드쇼 설정이 '발표자가 진행'이고 , 전환에서 '마우스클릭할 때' 전환에 체크가 되어 있는 상태에서

  1-2. 회전판을 다음클릭할 때까지 무한 반복시키고 

  1-3. 하나의 버튼을 만들고 애니메이션 효과 -나타나기를 추가하고, 클릭할 때 나타나게 하면  매크로 없이도 만들 수 있습니다.

 

2. 룰렛 회전판 최신버전 안내:

회전 룰렛 샘플과 자동 룰렛회전판 생성기 그리고 자동으로 회전판이 멈추는 버전을 아래 게시글에 추가했습니다. 

https://konahn.tistory.com/entry/Roulette2