💙
PowerShellでPowerPointのスライドに図形を加える。
この記事は何?
- 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