Home » パワーポイントマクロ・PowerPoint VBAの使い方 » Slide・スライド » 配列で指定した位置に白紙スライドを挿入する

配列で指定した位置に白紙スライドを挿入する

動作検証バージョン:64bit Windows 10 Pro + 32bit PowerPoint(バージョン2001 ビルド12430.20184 Microsoft Store)

「powerpointVBA 指定ページに白紙」
といった検索キーワードでのアクセスに気が付きました。

PowerPoint VBAを使って、(何らかの方法で)指定した位置に白紙スライドを挿入するには、どのようなコードを書けばいいのかを探していらした方による検索です。

配列で指定した位置に白紙スライドを挿入するサンプル

ここでは配列で挿入位置を指定しておくコードをご紹介します。

Sub 配列で指定したスライドの後ろに白紙を挿入する()
 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・スライド » 配列で指定した位置に白紙スライドを挿入する

「Slide・スライド」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.