
【WinActor】サブルーチン活用方法と応用
こんにちは!
ワークスアイディキャンスタ編集部 RPAエンジニアのちろです。
シナリオ作成していると、繰り返し(ループ)にできない同じ処理が何度も出てくることはありませんか?本日は、そんな時に便利な「サブルーチン」の活用方法をご紹介します。
1.サブルーチンとは
繰り返し呼び出して流用できるグループのことです。同シナリオ内はもちろんのこと、他のシナリオにサブルーチンのみ取り込むこともできるので、同じ工程を複数シナリオで使用する場合にも有効です。
***メリット***
シナリオ作成の効率化
何度も同じノードを追加して、設定する必要がないため効率がアップします!フローの視認性向上
ノード数が削減できるため、縦にフローが長くなることを軽減できます!保守性向上
一度サブルーチン内を更新、修正すると呼び出している箇所全てが更新されるので保守も容易になります!
**********
2.使い方(基本編)
サブルーチン関連のノードはノードパレットのフローグループに3つあります。それぞれ使い方をみていきましょう!
1)サブルーチングループ
ノードパレットから「サブルーチングループ」をフローの枠外に配置し、サブルーチン化したい工程をサブルーチングループ内に作成します。(通常のグループと異なり、フロー内に配置できませんのでご注意ください。)
既存の作成済みのグループをサブルーチンに変更することも可能です!
通常グループをフロー枠外へ移動させ、右クリック▶「サブルーチン化」で作成できます。

2)サブルーチン呼び出し
作成したサブルーチンを呼び出します。ノードパレットから「サブルーチン呼び出し」をドラッグ&ドロップでフロー内に配置します。
プロパティ設定で、呼び出したいサブルーチン名を選択します。

3)サブルーチン終了
分岐や繰り返しの条件を満たしたら後続の工程を通過せず、メインのフローへ戻したいときに「サブルーチン終了」を活用します。
「サブルーチン終了」は配置しなくても、サブルーチングループ内の工程を全て通過すると、サブルーチンを終了してメインのフローへ戻ります。
【図1】【図2】の例のように、システムログイン工程をサブルーチンにしておくと、他のシナリオ作成時にサブルーチンのみインポートして流用ができるのでおすすめです!
インポート方法は、以下の【図3】を参考にしてみてくださいね。

また、類似の方法として「シナリオ呼び出し」というノードもあります。
この場合は、ログイン工程のみのシナリオを作成しておき、そのシナリオを呼び出して利用します。(参考:【図4】) こちらも便利なので覚えておくとGoodです!

3.使い方(応用編)
ここからは応用編です!
サブルーチンには、変数を渡す便利な機能がついています。
今回は1つのシナリオで、同一システムから発注一覧と受注一覧を出力することを想定して、名前を付けて保存工程のサブルーチンを作成してみたいと思います。

1)ファイル保存工程のサブルーチングループを作成
名前をつけて保存ウィンドウに設定するファイル名のフルパスを作成(文字列の連結)
ファイル名を入力(WIN32)
保存をクリック(WIN32)
*保存ファイルのフルパス作成時の設定がポイントです!
今回は2種のファイルがあるため、下記例①②のように作成したいフルパスが2つあります。(フォルダ構成は【図3】参照)
①C:\2024\01_発注一覧\発注一覧_20241201.pdf
②C:\2024\02_受注一覧\受注一覧_20241201.pdf
完成予定のフルパスを書き出してみると①②の太字部分が、変動することが分かります。そのため「保存フォルダ」「ファイル種類」「yyyymmdd」の3つを変数に設定しました。


2)サブルーチンのプロパティ設定
基本編では出てきませんでしたが、実はサブルーチングループにもプロパティ設定が存在します。ここでは、サブルーチン呼び出し時に設定を行う変数を事前に指定する設定をします。
①サブルーチングループの余白部分をダブルクリックして、プロパティ画面を表示します。
②追加する変数のプルダウンから、呼び出し時に設定する変数を選び”追加”を押下します。今回は、ファイルによって変動する「保存フォルダ」「ファイル種類」の2つの変数を追加します。追加すると左枠に追加した変数の一覧が表示されます。
誤って追加した場合などで削除する場合は、左枠の変数一覧から削除したい変数を選択して削除ボタンを押下してください。

3)サブルーチン呼び出し設定
ここでは2)サブルーチンのプロパティ設定で指定した変数の設定を行います。サブルーチングループの指定を行うところまでは基本編と同じです。
①サブルーチン名をプルダウンを選んだら”同期”をクリックします。押下後、2)で設定した「保存フォルダ」「ファイル種類」(変数名)が表示されます。
②各変数に与えておきたい値を設定します。サブルーチンでの変数の初期値を設定しているようなイメージです。
「保存フォルダ」
プルダウンから「01_発注一覧」または「02_受注一覧」を選択
「ファイル種類」
プルダウンから「値⇒ 」を選択し、”発注一覧_”または”受注一覧”と入力

応用編の設定は以上です。
サブルーチン呼び出しを通過すると、サブルーチン呼び出しで設定した変数の値は、保存ファイルパスの変数に渡され、保存ファイルパスが作成されます。(【図10】参照)

シナリオ全体を比べてみると【図11】のようになります。個人的にはサブルーチンを利用している方がフローの長さが短くなって見やすく感じます。

★Tips★
サブルーチン活用に慣れてくると、サブルーチングループがどこにあるのか分からなくなることがあります。(ずぼらな筆者はよくあります;)
そんな時は、対象のサブルーチン呼び出しを選択▶右クリック▶サブルーチンジャンプ(または「Ctrl+J」のショートカット)押下で該当サブルーチングループへ移動できます。エラーで止まっている箇所がサブルーチン呼び出しだった場合などに便利ですよ!
4.おわりに
いかがでしたか?今回のように、何度も同じシステムからダウンロードする場合や、アカウント違いでシステムへのログインし直しが必要な場合などアイディア次第でサブルーチンを活用すると時短にもつながります!
はじめは、変数の動きが難しく分かりにくいかもしれませんが、「これはサブルーチンで流用できるかな?」と繰り返し試して、ぜひマスターしてくださいね♪
最後までお読みいただきありがとうございました!
▼WinActorのご相談はこちら
▼ワークスアイディのRPA研修や開発、運用サポートの詳細はこちら