発表の直前になって「このスライドだけは見せたくない」と気づくことは少なくありません。とはいえ、いったん削除してしまうと後で戻せませんし、聴衆別にファイルを複数用意するのも管理が煩雑になります。そんなときは スライドの非表示 を使えば、内容を残したままスライドショーから外せます。逆に、以前に非表示にしたスライドをまとめて復帰させたい場面もよくあります。
本記事では、Spire.Presentation for Python を使用して Python で PowerPoint のスライドを非表示または表示にする方法 を、3 つの操作に分けて紹介します。
クイックナビゲーション
- Spire.Presentation for Python のインストール
- 特定のスライドを非表示にする
- 非表示にしたスライドを再表示する
- すべての非表示スライドを表示する
- 補足:非表示スライドはどこまで反映されるか
- まとめ
- FAQ
Spire.Presentation for Python のインストール
本記事のコードは Spire.Presentation for Python と plum-dispatch v1.7.4 を使用します。pip コマンドでインストールしてください。
pip install Spire.Presentation
スクリプト側では次の 2 行をインポートします。
from spire.presentation.common import *
from spire.presentation import *
手動でインストールする場合は、Spire.Presentation for Python のダウンロードページ からパッケージを取得できます。
特定のスライドを非表示にする
スライドの表示・非表示は、ISlide.Hidden プロパティだけで制御できます。非表示にしたいスライドを取得し、このプロパティに True を代入するだけです。
from spire.presentation.common import *
from spire.presentation import *
# Presentation オブジェクトを作成
presentation = Presentation()
# PowerPoint プレゼンテーションを読み込む
presentation.LoadFromFile("Sample.pptx")
# 2 番目のスライドを取得して非表示に設定
slide = presentation.Slides[1]
slide.Hidden = True
# 結果を新しい .pptx ファイルとして保存
presentation.SaveToFile("HideSlide.pptx", FileFormat.Pptx2016)
presentation.Dispose()

PowerPoint で開くと、スライド一覧のサムネイルが薄いグレー表示になり、スライド番号に取り消し線が付きます。ファイルには非表示の状態がそのまま記録されるため、あとから開き直しても設定は維持されます。
非表示にしたスライドを再表示する
非表示を解除したいときは、同じプロパティに False を代入します。非表示にする操作と対になるだけで、手順は変わりません。
from spire.presentation.common import *
from spire.presentation import *
# Presentation オブジェクトを作成
presentation = Presentation()
# 非表示スライドを含むプレゼンテーションを読み込む
presentation.LoadFromFile("HideSlide.pptx")
# 2 番目のスライドを取得して非表示を解除
slide = presentation.Slides[1]
slide.Hidden = False
# 結果を新しい .pptx ファイルとして保存
presentation.SaveToFile("ShowSlide.pptx", FileFormat.Pptx2016)
presentation.Dispose()

なお、非表示の設定はファイルに保存されているため、読み込み直したあとでも slide.Hidden を参照すれば現在の状態を確認できます。上のコードは、前のセクションで作成した HideSlide.pptx を入力にしています。
すべての非表示スライドを表示する
多数のスライドを個別に指定して回るのは現実的ではないため、一括で解除したい場合もあります。presentation.Slides をループ処理し、ISlide.Hidden が True のスライドだけを False に戻します。
from spire.presentation.common import *
from spire.presentation import *
# Presentation オブジェクトを作成
presentation = Presentation()
# 非表示スライドを含むプレゼンテーションを読み込む
presentation.LoadFromFile("HideSlide.pptx")
# プレゼンテーション内のスライドをループ処理
for i in range(presentation.Slides.Count):
slide = presentation.Slides[i]
# スライドが非表示かどうかを判定
if slide.Hidden:
# 非表示を解除
slide.Hidden = False
# 結果を新しい .pptx ファイルとして保存
presentation.SaveToFile("ShowAllHidenSlides.pptx", FileFormat.Pptx2016)
presentation.Dispose()
非表示のスライドが 1 枚もない場合は if slide.Hidden: の条件が成立しないため、何も変更せずにそのまま保存されます。ファイルを読み込んでから状態を判定しているので、非表示が設定済みのファイルでも、まったく設定されていないファイルでも同じコードで扱えます。
補足:非表示スライドはどこまで反映されるか
ISlide.Hidden の挙動を実際に確認すると、次のようになります。
- スライドショー — 非表示のスライドは表示されず、飛ばして進行します。発表の場で見せたくないスライドを外す、という用途はこれにあたります。
- スライド一覧 — 非表示のスライドも一覧には残り、薄いグレーで表示されます。削除したわけではないため、内容・レイアウト・発表者ノートはそのまま保持されます。
- 画像化・PDF 変換 — 非表示のスライドも描画対象に含まれます。4 枚のスライドのうち 1 枚を非表示にしたファイルを PDF に変換したところ、出力は 4 ページのままでした。配布用の PDF から特定のスライドを外したい場合は、非表示ではなく削除を検討してください。
つまり ISlide.Hidden は「スライドショーでの見え方」を切り替えるプロパティであり、ファイルの中身を削るものではありません。この性質を理解しておくと、資料の配布方法に応じて使い分けられます。
まとめ
本記事では、Spire.Presentation for Python を使用して Python で PowerPoint のスライドを非表示または表示にする方法 を解説しました。
- 非表示にする:対象の
ISlide.HiddenプロパティにTrueを代入する - 再表示する:同じ
ISlide.HiddenプロパティにFalseを代入する - まとめて再表示する:
presentation.Slidesをループ処理し、HiddenがTrueのスライドだけをFalseに戻す
操作はプロパティ 1 つの切り替えだけなので、発表資料の量産や、聴衆別にスライドの見せ方を変えるバッチ処理にも組み込みやすい仕組みです。
Spire.Presentation for Python の全機能を評価したい場合は、30 日間の無料ライセンスを申請できます。
FAQ
非表示にしたスライドは削除されますか?
いいえ。ISlide.Hidden はスライドショーでの表示・非表示を切り替えるだけで、スライド自体はプレゼンテーション内に残ります。レイアウトや発表者ノートも保持されます。
どのスライドが非表示になっているかを判定できますか?
はい。各スライドの ISlide.Hidden プロパティを参照すると、True(非表示)か False(表示)かを取得できます。
複数のスライドをまとめて非表示にするにはどうすればよいですか?
presentation.Slides をループ処理し、対象の条件に一致するスライドに slide.Hidden = True を設定します。すべてのスライドを非表示にする場合は、条件を付けずにループ内で設定してください。
非表示スライドは画像や PDF にも出力されますか?
はい。非表示のスライドも ISlide.SaveAsImage() や PDF 変換の対象に含まれます。配布用の PDF から除外したい場合は、非表示ではなくスライドの削除を行ってください。
スライドショー中に非表示スライドを一時的に表示できますか?
PowerPoint のスライドショー中にスライドを右クリックし、[非表示のスライドを表示]を選ぶと、非表示にしたスライドへ移動できます。ファイルの設定を変更するものではないため、終了後も非表示のままです。






