【PowerPoint】 슬라이드를 지정한 수마다 무작위로 표시
소개
전회 기사 【PowerPoint】 슬라이드를 랜덤으로 표시 그럼 2장까지 밖에 세트로 바꿀 수 없었습니다만, 이번은 수치를 지정하면 복수 세트로 나눌 수 있도록 작성했습니다.
사용법이나 설정 방법은 마지막 기사를 참조하십시오.
준비
거기에 입력된 숫자를 바탕으로 슬라이드를 나누는 구조.
예를 들면, 「7」을 입력하고 있으면 7장마다(타이틀 슬라이드 제외) 랜덤으로 배분한다.
슬라이드를 지정된 수의 세트로 교체
코드
Public Sub OnSlideShowTerminate(ByVal Wn As SlideShowWindow)
Dim sld As Long
Dim cnt As Long
Dim i As Long
Dim sld1 As Slide
Dim shp As Shape
Dim setNumber As Long
Dim arry() As Variant
cnt = ActivePresentation.Slides.Count
Set sld1 = ActivePresentation.Slides(1)
Set shp = Shapes("inputTextbox")
sld1.Select
If ActiveWindow.ViewType = ppViewSlideSorter Then
ActiveWindow.ViewType = ppViewNormal
End If
shp.Select
setNumber = shp.TextFrame.TextRange.Text
If IsNumeric(setNumber) = False Then
MsgBox ("数値を入力してください。")
Exit Sub
End If
If cnt < 2 * setNumber Then
MsgBox ("スライド数が足りません。")
Exit Sub
ElseIf cnt = 2 Then
MsgBox ("スライド数を2以上にしてください。")
Exit Sub
End If
If setNumber = 1 Then
GoTo L1:
ElseIf Not cnt Mod setNumber = 1 Then
MsgBox ("スライド数をセットした倍数にしてください。")
Exit Sub
End If
L1:
ActiveWindow.ViewType = ppViewSlideSorter
Randomize
For i = 1 To cnt
sld = (cnt - 2) * Rnd + 2
If (sld - 2) Mod setNumber = 0 Then
ReDim arry(setNumber)
For k = 0 To setNumber - 1
arry(k) = sld
sld = sld + 1
Next k
ActivePresentation.Slides.Range(arry).Select
ActiveWindow.Selection.Cut
ActivePresentation.Slides(cnt - setNumber).Select
ActiveWindow.View.Paste
Else
i = i - 1
End If
Next i
ActiveWindow.ViewType = ppViewNormal
End Sub
해설
지난번 보다 변경한 부분을 해설합니다.
Set sld1 = ActivePresentation.Slides(1)
슬라이드(1)를 변수에 대입.
Set shp = Shapes("inputTextbox")
"inputTextbox"라는 이름의 도형을 변수에 대입. 이름은 슬라이드(1)에서 작성한 도형의 이름으로 한다.
sld1.Select
슬라이드(1)를 선택.
If ActiveWindow.ViewType = ppViewSlideSorter Then
ActiveWindow.ViewType = ppViewNormal
End If
에러 등으로 슬라이드 리스트 모드로 되어 있는 경우는 표준 모드로 되돌린다.
shp.Select
슬라이드 (1)의 "inputTextbox"를 선택.
setNumber = shp.TextFrame.TextRange.Text
입력한 수치를 세트수에 대입.
If IsNumeric(setNumber) = False Then
MsgBox ("数値を入力してください。")
Exit Sub
End If
만약 수치가 아닌 경우 매크로 종료.
If cnt < 2 * setNumber Then
MsgBox ("スライド数が足りません。")
Exit Sub
ElseIf cnt = 2 Then
MsgBox ("スライド数を2以上にしてください。")
Exit Sub
End If
슬라이드 수가 바꿀 수 보다 적은 경우 매크로 종료.
If setNumber = 1 Then
GoTo L1
ElseIf Not cnt Mod setNumber = 1 Then
MsgBox ("スライド数をセットした倍数にしてください。")
Exit Sub
End If
L1:
세트한 수가 1일 때는 매크로 계속.
슬라이드 수가 세트한 수로 나눌 수 없는 경우, 매크로 종료.
If (sld - 2) Mod setNumber = 0 Then
슬라이드 번호를 타이틀 슬라이드 제외 setNumber의 배수로 지정.
ReDim arry(setNumber)
배열을 재정의.
For k = 0 To setNumber - 1
arry(k) = sld
sld = sld + 1
Next k
슬라이드 번호를 세트 수 저장한다.
Else
i = i - 1
End If
조건외일 때 반복횟수를 늘린다
요약
"슬라이드를 지정한 수마다 무작위로 표시"에 대해 설명했습니다.
꼭 활용해 주세요.
Reference
이 문제에 관하여(【PowerPoint】 슬라이드를 지정한 수마다 무작위로 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/risklqbz/items/628c84041a17686d0f0d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)