久しぶりにブログを担当するよっぴーです。
今回は、最近開発に使用しているC#にて、プログラムからパワーポイントを操作して、図形間に線を引く方法をテーマにして記事にします。
これは、誰もが人生で一度はしたいことのランク10位以内には入っているかと思います。(そんなことはない)
私もこの方法をネットで検索をしたのですが、なかなか日本語のサイトでは紹介されてないかと思うので見ていただけると幸いです。
※残念ながら、私個人のPCにはパワーポイントという高級なソフトは存在していませんので、キャプチャはなく、ソースコードのみの紹介となります。ご了承ください。
ここで使用するアセンブリは、Microsoft.Office.Interop
となります。なければダウンロードをしておきましょう。
まず、線を引くための2つの図形のオブジェクト名を設定しておきましょう。(ここでは、図形1と図形2とします。)
また、対象のパワーポイントファイルを変数に格納して、オブジェクト操作ができるようにしておきます。
※この例では、スライドマスタに作成した図形を指定しています。
using PowerPoint = Microsoft.Office.Interop.PowerPoint;
PowerPoint.Application appPPt = new PowerPoint.Application();
var ppt = appPPT.Presentations.Open(ファイル名フルパス.pptx);
var baseSlide = ppt.Slides[1];
PowerPoint.Document Window oWindow = appPPT.ActiveWindow;
oWindow.ViewType = PowerPoint.PpViewType.ppViewSlideMaster;
PowerPoint.Shapes oshape = ppt.SlideMaster.Shapes as PowerPoint.Shapes;
次に、線を引くための図形の座標(X座標、Y.座標)を取得します。以下のように取得しましょう。
※図形自体は四角や三角でも良いですが、点として取得する箇所は、選択状態にしたときに出てくる四角形の左上の頂点となります。ここでは線を引くだけなので、点のような図形が良いかもです。
PowerPoint.Shapes pptShape
var Obj1_x = pptShape[図形1].Left;
var Obj1_y = pptShape[図形1].Top;
var Obj2_x = pptShape[図形2].Left;
var Obj2_y = pptShape[図形2].Top;
そして、以下のコードで線を引きます。
pptShape.AddLine(Obj1_x, Obj1_y, Obj2_x, Obj2_y)
これで2つの図形間の線を引くことができます。
簡単でしたね。
それでは、See you next time👉