私は、PowerShellを使用して、PowerPointスライドノートのメモをプログラマで更新しようとしています。これを行うことができることは、膨大な時間を節約します。以下のコードでは、PowerShellでノートフィールドを編集することができますが、そのたびにフォーマットが崩れます。powershell edit powerpointスライドノート
$PowerpointFile = "C:\Users\username\Documents\test.pptx"
$Powerpoint = New-Object -ComObject powerpoint.application
$ppt = $Powerpoint.presentations.open($PowerpointFile, 2, $True, $False)
foreach($slide in $ppt.slides){
if($slide.NotesPage.Shapes[2].TextFrame.TextRange.Text -match "string"){
$slide.NotesPage.Shapes[2].TextFrame.TextRange.Text = $slide.NotesPage.Shapes[2].TextFrame.TextRange.Text -replace "string","stringreplaced"
}
}
Sleep -Seconds 3
$ppt.Save()
$Powerpoint.Quit()
例えば、今では、各スライドのノートを反復処理し、stringreplacedする単語列を更新するが、その後、全体のノートのテキストが太字になります。私のノートでは、ノートの上部に太字で1つの単語があり、その下にテキストがあります。例えば、スライド上の注意事項このように私の表情:
ノートタイトル
は、この文字列で私を助けて。
PowerShellはノートのフィールドを更新した後、それは新しい.PPTXファイルに保存しますが、ノートは次のようになります。
ノートタイトル
このstringreplacedで私を助けて。
メモに書かれている書式を崩さずにスライドノートを更新する方法についてのアイデアはありますか?それは、スクリプトが更新するスライドの書式設定を駄目にするだけです。
この方法を使用します全体の内容を取り、それらを置き換えるように見える。単語 "sample text"を "example text"に置き換える代わりに、.Text全体を "example text"に置き換えます。 –
ここにはありません。おそらく、これのPowerShellバージョンは、きわめて正確に翻訳されているとは限りません。あなたが今持っているコードを投稿してください。おそらく、PowerShellをよく知っている人が一見することができます。 –
私は幾分古いと思いますが、実際のPowerShellスニペットは次のとおりです: '$ presentation.Slides [1] .Shapes [4] .TextFrame.TextRange.Replace($ f0a、$ f1a)'。仕事をうまくやって、形の中の他の書式設定を妨げないでください。 (PowerShell 2016)。 –