💙

PowerShellでPowerPointのスライドに図形を加える。

2022/08/08に公開約1,800字

この記事は何?

  • PowerPoint のスライドに図形を加えるのって億劫ですよね。
  • PowerShell で片づけましょう。

構成

OS, PowerShell, PowerPoint のバージョンは次の通りです。
なお、PowerPoint は M365 です。

PS > (Get-WmiObject -Class Win32_OperatingSystem).Caption
Microsoft Windows 11 Home

PS > [string]$PSVersionTable.PSVersion
5.1.22000.653

PS > (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration').ClientVersionToReport
16.0.15330.20260

コード

既存のプレゼンテーションを編集するのも難しくないですが、
ここではプレゼンテーションを新規で作って、スライドのテキストを編集することにします。

# PowerShell のセッションに .NET クラスを定義する。
$SearchPath = 'C:\WINDOWS\assembly\GAC_MSIL\office'
$SearchFilter = 'office.dll'
$PathToAssembly = Get-ChildItem -LiteralPath $SearchPath -Filter $SearchFilter -Recurse |
    Select-Object -ExpandProperty FullName -Last 1
Add-Type -LiteralPath $PathToAssembly

# PowerPoint で新規プレゼンテーションを作る。
$Application = New-Object -ComObject PowerPoint.Application
$Application.Visible = [Microsoft.Office.Core.MsoTriState]::msoTrue
$Presentation = $Application.Presentations.Add()

# プレゼンテーションにスライドを作る。
$CustomLayout = $Presentation.SlideMaster.CustomLayouts |
    Where-Object { $_.Name -eq '白紙' } |
    Select-Object -First 1
$Slide = $Presentation.Slides.AddSlide(1, $CustomLayout)

# スライドの中央に角が丸い四角の図形を加える。
$PageSetup = $Presentation.PageSetup
$CenterLeft, $CenterTop = ($PageSetup.SlideWidth / 2), ($PageSetup.SlideHeight / 2)
$msoShapeRoundedRectangle = 5
$Width, $Height = 200, 100
$Shape = $Slide.Shapes.AddShape($msoShapeRoundedRectangle, $CenterLeft, $CenterTop, $Width, $Height)
$Shape.TextFrame2.TextRange.Text = "text1"
$Shape.Adjustments(1) = 0.16667 / 2  # 角を尖らせる。

こんな感じになりました。

簡単ですね!

まとめ

  • 意外と簡単に図形を追加できることがわかりました。
  • もうちょっといろいろ遊べそうですね!

現場からは以上です。

参考資料

Discussion

ログインするとコメントできます