PowerPointスライドにgraphを連続で貼付けたい その2

UiPath初心者です。
ひとつ前の質問にも書きましたが、Webでgraphを作成して、PowerPointスライドにgraphを1枚ずつ1ページごとに貼り付けるワークフローを作成中です。

UiPath.Presentations.Activitiesが使えそうなので、まずインストールしてみました。

UiPath.Presentations.Activitiesの機能を活用する前提でワークフローを考えると、

1.まず、graphファイルをを1個ずつダウンロードする。その際に、ファイル名に通番を振っておく。
2.スライドに画像・ビデオを追加アクティビティで、プレースホルダーに1ページずつ画像を追加

するのがUiPathの流儀のような気がしてきました。

ただ、この方法で、プレースホルダーとgraph画像を置換したあと、graph画像の拡大・配置調整(センタリング)はどうやるのでしょうか?

PowerPointのリボンメニューをCtrl+F1で開いて、ホットキーでサイズ変更やセンタリングをするのでしょうか?

記載されている

1)パワポの画面を操作する(PowerPointのリボンメニューをCtrl+F1で開いて、ホットキーでサイズ変更やセンタリングをするなど)

でも良いと思いますが、それ以外では、

2)マーケットプレイスで公開されているカスタムコンポーネントを使用する( Microsoft PowerPoint Related Activities

3)InVokeCodeで、.netのコードで実現する

があると思います。

2は試していませんが、説明欄に「Insert Picture - Insert the image in a specific location with size.」とあるので出来るはずです。
3は試してみましたが、出来そうな感じがしました。(gorbyさんの要件次第ではだめかも知れませんが)

アドバイスありがとうございます。参考までに、.netで画像を指定位置(スライド中央に配置を予定)に指定サイズに変更するのはどのようなコードになるのでしょうか?VBAでやったことはありますが、.netはよく知らないので参考までに教えていただけると参考になります。

ホットキーを送信アクティビティでCtrl+VなどのようなCtrl+ローマ字1文字の同時押しはできるのでしょうか? ホットキーを送信アクティビティのプロパティでローマ字を探したが、見つからなかったので、できないのではないかと危惧しています。

ホットキーを送信アクティビティでCtrl+VなどのようなCtrl+ローマ字1文字の同時押しはできるのでしょうか? ホットキーを送信アクティビティのプロパティでローマ字を探したが、見つからなかったので、できないのではないかと危惧しています。

プロパティの項目ではなく、入力の項目にある「キー」に指定してみて下さい。

例えば、下記のようなコードをInvokeCodeで実行すると

Dim filePath As String = "C:\work\test.pptx"
Dim photoPath As String = "C:\work\test.jpg"
Dim positionLeft As Integer = 50
Dim positionTop As Integer = 50
Dim photoWidth As Integer = 100
Dim photoHeight As Integer = 100

Dim msoTriStateFalse As Microsoft.Office.Core.MsoTriState = Microsoft.Office.Core.MsoTriState.msoFalse
Dim msoTriStateTrue As Microsoft.Office.Core.MsoTriState = Microsoft.Office.Core.MsoTriState.msoTrue
Dim app As New Microsoft.Office.Interop.PowerPoint.Application
Try
	Dim pres As Microsoft.Office.Interop.PowerPoint.Presentations = app.Presentations
	Dim pptfile As Microsoft.Office.Interop.PowerPoint.Presentation = pres.Open(filePath, msoTriStateFalse, msoTriStateFalse,msoTriStateFalse)
	Dim slide As Microsoft.Office.Interop.PowerPoint.Slide = pptfile.Slides(1) '// 1枚目
	slide.Shapes.AddPicture(photoPath, msoTriStateFalse, msoTriStateTrue, positionLeft, positionTop, photoWidth, photoHeight)
	pptfile.Save
	pptfile.Close
Catch ex As Exception
	Console.WriteLine(ex.Message)
Finally
	app = Nothing
End Try

こんな感じになります。

InvokeCodeを置いたxamlでは、下記の2つのインポートが必要です。

Hello Shinji,
In this video, I have multiple use cases of UiPath working with POWERPOINT via VB.NET:

I have a lot of VB.NET Code that maybe you can reuse on your projects:
startUiPathFromSalesforce/PowerPointCODE.txt at master · cristinegulescu/startUiPathFromSalesforce · GitHub

Thanks,
Cristian Negulescu

1 Like