【UiPath】スクショをExcelに並べて貼り付ける方法




UiPathで取得したスクショをすべて同じ大きさでExcelに並べて貼り付けていく方法を紹介します。
単にスクショを画像ファイルとして保存するだけであれば簡単にできるので
【UiPath】スクリーンショット取得方法をご参照ください。

今回の手順としては以下になります。
1.スクリーンショットを撮る(take Screenshot)
2.スクショの大きさを整える(Invoke Method)
3.スクショをクリップボートにセットする(Invoke Method)
4.Excelに貼り付ける(Send Hotkey)

1.スクリーンショットを撮る(take Screenshot)

まず、スクリーンショットを取得します。
これは特に難しいことなく、takeScreenshotというアクティビティを使うだけです。
OutputにはUiPath.Core.Image型の変数をセットしてください。(ctrl+kで作成すると楽です)
スクショを撮る範囲を指定したい場合は、Indicate on screenで設定してください。
画面全体を撮りたい場合は設定なしで大丈夫です。

2.スクショの大きさを整える(Invoke Method)

続いて、スクショの大きさを一定にします。
大きさは気にしない、使用するPCが同じだから大きさは変わらないから大丈夫などという場合は飛ばしてください。
まず、大きさの台紙となる変数を作成します。
VariableType:System.Drawing.Image
Default:New Bitmap(700,500) ※700が横幅で500が縦幅

Invoke Methodアクティビティを使用し、以下のように設定します。
TargetType:(null)
TargetObject:System.Drawing.Graphics.FromImage(イメージ型) ※上で作成したSystem.Drawing.Image型の変数名
MethodName:DrawImage

[Parameters]
In-System.Drawing.Image-スクショ ※1で取得したUiPath.Core.Image型の変数
In-Int32-0 ※貼り付けるx座標なので0としておく
In-Int32-0 ※貼り付けるy座標なので0としておく
In-Int32-700 ※スクショの横幅(変数と同じにする)
In-Int32-500 ※スクショの縦幅(変数と同じにする)

これで700×500の大きさの画像となりました。(大きさは自由に設定してください)

3.スクショをクリップボートにセットする(Invoke Method)

次に大きさを整えたスクショの画像をクリップボートにセットします。(コピーした状態にする)
InvokeMethodを使用し、以下のように設定します。
TargetType:System.Windows.Forms.Clipboard
MethodName:SetImage

[Parameters]
In-System.Drawing.Image-イメージ型 ※2で作成したSystem.Drawing.Image型の変数名

これで画像がコピーされた状態となりました。

4.Excelに貼り付ける(Send Hotkey)

最後にExcelに貼り付けます。
Excel Application Scopeで貼り付けたいExcelを開き、
Select Rangeで貼り付けたい位置のシートおよびセルを設定し、
Send Hotkeyでctrl+vの操作をします。
(追加で古いバージョンの場合で、Excelが保存されなかった場合は、Send Hotkeyでctrl+sの操作をいれましょう)

これで実行すると、スクショ貼り付け.xlsxのSheet1のB2セルにスクショを貼ることができます。

1枚ではなく並べて貼っていきたい場合は、Select Rangeのセルの位置を変えていってください。

以上、UiPathで取得したスクショをすべて同じ大きさでExcelに並べて貼り付けていく方法でした。
証跡を作らなければならない場合等に使えれば、と思います。

他の機能一覧はこちら
他の作業一覧はこちら