2017-01-18 11 views
0

テキストボックス、テキスト、およびスタイルを追加する簡単なコードを書いています。私が追加したテックスボックスは「これは私の新しいテキストです」と言っています。このテキストボックスの途中で、「これは私のより多くのテキストの新しいテキスト」のように、「より多くのテキスト」を表す別のテキストを追加したいと思います。私はinteropで作業するのがかなり新しいので、これをどのように達成できるのか分かりませんし、可能であれば私も確信がありません。次のようにinteropを使用してPowerPointで文章の途中にテキストを追加する

私のコードは次のとおりです。

Application pptApplication = new Application(); 

Microsoft.Office.Interop.PowerPoint.Slides slides; 
Microsoft.Office.Interop.PowerPoint.Slide slide; 
Microsoft.Office.Interop.PowerPoint.Shape shp; 
Font2 font2; 
Microsoft.Office.Interop.PowerPoint.TextRange objText; 

TextRange2 objText2; 

// Create the Presentation File 
Presentation pptPresentation = pptApplication.Presentations.Open(@"C:\Users\Craig\Documents\AddText.pptx"); 

Microsoft.Office.Interop.PowerPoint.CustomLayout customLayout = pptPresentation.SlideMaster.CustomLayouts[Microsoft.Office.Interop.PowerPoint.PpSlideLayout.ppLayoutText]; 

// Create new Slide 
slides = pptPresentation.Slides; 
Microsoft.Office.Interop.PowerPoint.Slide firstSlide = Globals.ThisAddIn 
    .Application.ActivePresentation.Slides[1]; 
shp= firstSlide.Shapes.AddTextbox(MsoTextOrientation.msoTextOrientationHorizontal, Left: 30, Top: 30, Width:340, Height: 340); 

shp.TextFrame.TextRange.Text = "This is my new text"; 
shp.TextEffect.FontName = "Arial"; 
shp.TextEffect.FontSize = 32; 

pptPresentation.Save(); 
+0

「using Microsoft.Office.Interop.PowerPoint」のように、コードを読みやすくするためには、もっと多くの使い方を実際に使用する必要があります。また、なぜあなたはあなたのコメント "Create new Slide"の直後に宣言できる 'slides 'のように、すべての変数を一番上に宣言しますか? – EluciusFTW

+0

このコードは私のテキストプロジェクトにあるので、ちょっと混乱しています。 –

+0

乱雑なコードを書いて、時間を節約することはありません。私のアドバイスは、きれいなコードを書くことを常に習得することです。あなたは長期的には、より速く、あるいはより速くなるでしょう。 – EluciusFTW

答えて

0

次のように動作するはずです。私はこのコードを具体的にテストしていませんが、最近はPowerPoint interopで他のことをやっています。これが私のために働いています。

shp.TextFrame.TextRange.Text = "This is my new text"; 
var start = shp.TextFrame.TextRange.Find("This is my "); 
start.InsertAfter("more text "); 
関連する問題