Home » Python » pywin32・win32comの使い方 » pywin32でPowerPointの図形の枠線を設定する

pywin32でPowerPointの図形の枠線を設定する

動作検証バージョン:64bit Windows 10 Pro + 32bit PowerPointバージョン2102 ビルド13801.20266 Microsoft Store)+ Python 3.8.3 + pywin32 228

「python win32com pptx 図形 枠線」
「python win32com powerpoint 枠線」
といった検索でアクセスがありました。

PowerPoint上に存在する図形の枠線を設定するサンプル

先頭スライドに、図形が存在するプレゼンテーションファイルがアクティブな状態で、以下のスクリプトを実行してみてください。

import win32com.client

pp_app = win32com.client.GetObject(Class='PowerPoint.Application')

line_fmt = pp_app.ActivePresentation.Slides(1).Shapes(1).Line
line_fmt.Visible = True
line_fmt.Weight = 10

先頭スライドに存在する1つ目の図形の枠線が、
  line_fmt = pp_app.ActivePresentation.Slides(1).Shapes(1).Line

表示され、
  line_fmt.Visible = True

10ポイントの太さに設定されます。
  line_fmt.Weight = 10

PowerPoint VBAで図形の枠線を設定する

上述のpywin32・win32com.clientを使った処理は、以下のPowerPointマクロと実質的に同じです。

Sub 図形の枠線を設定する()
 Dim line_fmt As LineFormat
 Set line_fmt = ActivePresentation.Slides(1).Shapes(1).Line
 line_fmt.Visible = msoTrue
 line_fmt.Weight = 10
End Sub

以下のような階層を辿って、図形の枠線を表すLineFormatオブジェクトを取得して、
  Presentationオブジェクト ← ActivePresentationプロパティ
  └ Slidesコレクション ← Presentation.Slidesプロパティ
   └ Slideオブジェクト ← Slides.Itemメソッド
    └ Shapesコレクション ← Slide.Shapesプロパティ
     └ Shapeオブジェクト ← Shapes.Itemメソッド
      └ LineFormatオブジェクト ← Shape.Lineプロパティ

LineFormatオブジェクトのVisbleプロパティで表示状態を設定して、Weightプロパティで太さを設定しています。

COMアプリケーションであるPowerPointをpywin32comを介してPythonで操作するのか、VBAで操作するのかの違いです。

PowerPointのオブジェクトモデルを理解しましょう

PowerPoint VBAをあまりご存知ないまま、pywin32comを使ってPowerPointを操作するのは、なかなか大変なのではないかと思います。

拙著『いちばんやさしいPowerPoint VBAの教本』等を参考にしながら、最低でも、
  Presentationオブジェクト
  └ Slidesコレクション
   └ Slideオブジェクト
    └ Shapesコレクション
     └ Shapeオブジェクト
といったオブジェクトモデルを、PowerPoint VBAで理解することをおすすめします。

PowerPoint VBAであれば、コードの入力補完やヒント表示も使えますし、オブジェクトモデルを理解するのに必須のオブジェクトブラウザーも使えますから。

[スポンサードリンク]

Home » Python » pywin32・win32comの使い方 » pywin32でPowerPointの図形の枠線を設定する

TrackBack:0

TrackBack URL

Home » Python » pywin32・win32comの使い方 » pywin32でPowerPointの図形の枠線を設定する

「pywin32・win32comの使い方」の記事一覧

検索


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

.