「powerpointVBA 指定ページに白紙」
といった検索キーワードでのアクセスに気が付きました。
PowerPoint VBAを使って、(何らかの方法で)指定した位置に白紙スライドを挿入するには、どのようなコードを書けばいいのかを探していらした方による検索です。
配列で指定した位置に白紙スライドを挿入するサンプル
ここでは配列で挿入位置を指定しておくコードをご紹介します。
Dim arr_idx As Variant
arr_idx = Array(1, 2, 5) With ActivePresentation.Slides
Dim i As Long
For i = UBound(arr_idx) To LBound(arr_idx) Step -1
.Add Index:=arr_idx(i) + 1, Layout:=ppLayoutBlank
Next
End With
End Sub
5枚以上スライドが存在するプレゼンテーションがアクティブな状態で、上記のSubプロシージャを実行すると、配列に指定された1・2・5枚目のスライドの後ろに
Dim arr_idx As Variant
arr_idx = Array(1, 2, 5)
白紙スライドが挿入されます。
サンプルコードで行っている処理
白紙スライドの挿入は、拙著『いちばんやさしいPowerPoint VBAの教本』のLesson 29「Slideを追加するメソッドについて学習しましょう」でもご紹介している、Slidesコレクションに用意されているAddメソッドを、まずはおすすめします。
ループ処理内で数が変化してしまうようなコードの場合、後ろから前に向かってFor~Nextループを回すほうが、シンプルなコードで済みますから、ここでは初期値を「UBound(arr)」、
For i = UBound(arr_idx) To LBound(arr_idx) Step -1
最終値を「LBound(arr)」、
For i = UBound(arr_idx) To LBound(arr_idx) Step -1
増分値を「Step -1」と指定しています。
For i = UBound(arr_idx) To LBound(arr_idx) Step -1
このFor~Nextループの中で、拙著でもご紹介しているコード「ActivePresentation.Slides.Add Index:=〇, Layout:=ppLayoutBlank」を、繰り返し実行しています。
With ActivePresentation.Slides
.Add Index:=arr_idx(i) + 1, Layout:=ppLayoutBlank
最終更新日時:2020-02-18 10:23
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » 配列で指定した位置に白紙スライドを挿入する