C#を使用して、PowerPoint内の文字の書き換えをしたいのですが、ネットで探しても良い情報が無く困っております。
外部ライブラリは使用せず、Microsoft.Office.Interop.PowerPointを使用して書き換えを実施しようと考えているのですが、経験のある方いらっしゃるでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
![guest](/img/icon/icnUserSample.jpg)
回答2件
0
実は外部ライブラリーを使用するのも良くない訳ではありません、ツールの選択は一番ですから、例えば私の愛用のSpire.Presentation for .NETは、スライドに対して一般的な操作は基本的に何でもできます。そんなにこだわりのないなら無料版もいい選択です。これをダウンロードして参照に追加すれば、文字列の書き換えなどは簡単にできるはずです。そして書き換えに必要とするコードは紹介します。
using Spire.Presentation; using System.Text.RegularExpressions; namespace ReplaceTextWithRegex { class Program { static void Main(string[] args) { //プレゼンテーションインスタンスを作成する Presentation ppt = new Presentation(); //サンプルドキュメントをロードする ppt.LoadFromFile("Sample.pptx"); //最初のスライドを取得する ISlide slide = ppt.Slides[0]; //選択したテキストとその行末以降のテキストを新しいものとして置き換える Regex regex = new Regex("ABC.*"); string newvalue = "ABC DEF"; foreach (IShape shape in slide.Shapes) { shape.ReplaceTextWithRegex(regex, newvalue); } //結果ドキュメントを保存する ppt.SaveToFile("ReplaceTextWithRegex.pptx", FileFormat.Pptx2013); } } }
投稿2022/06/01 07:25
総合スコア41
0
ベストアンサー
PIA(Microsoft.Office.Interop.PowerPointなど)を使うのであれば、VBAと同じ操作体系のため、そちらで情報を探すと多少は見つかると思います。
参考として、自分がよく見るPowerPointのVBAに関するサイトと今回の内容と関連しそうな記事を載せておきます。
パワーポイントマクロ・PowerPoint VBAの使い方
半角文字を全角に一括変換するPowerPointマクロ:パワーポイントマクロ・PowerPoint VBAの使い方-TextFrame・TextRange
階層構造イメージ PowerPoint.Application Presentation Slide Shape TextFrame / TextFrame2 TextRange / Office.TextRange2 Text(文字列)
いくつか補足として
- 置き換えたい文字がグループ化された図形や、表の中に含まれる場合は図形(
Shape
)が入れ子となっているため、階層を辿る必要があります(パターンが多く、なおかつ統一的に辿る方法は無いため、必要であれば) - 一つの図形の中で複数の書式が使用され、それぞれの書式を保持したい場合は単純な
PowerPoint.TextRange.Text
・Office.TextRange2.Text
の書き換えではなく、Replace
メソッドやRuns
での書式毎への分解が必要になります。
投稿2019/07/16 22:13
総合スコア2166
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
![guest](/img/icon/icnUserSample.jpg)
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。