はじめに
この記事の執筆環境
この記事の執筆は以下の環境で行っています。
Studio 2025.0.161(Community License)
言語:日本語
なにをするの?
Studio 内の StudioX の機能について解説してみます。
なんのこっちゃ?という響きの機能ですが、
最近のアップデートでCommunity版のUiPathではStudioXのUIを開くことができなくなっています。
その代替(?)として公式から提供されているテンプレートの紹介と、
個人的に感じているStudioXを使う時との違いを紹介していきます。
StudioXのUIを開くことができないとは
今まで「プロファイルを変更」の画面からStudio⇔StudioXの切り替えを行っていました。
「プロファイルを変更」画面は 設定>ライセンスとプロファイル>プロファイルを変更 の順に辿ることで表示していましたが、記事執筆時点では「ライセンスとプロファイル」自体が表示されなくなっています。
そのため、変更操作を行うことができなくなっています。
関連リリースノート
UiPath 2024 December Community Release
製品版 latest 2024年12月(ビルド番号:2025.0.157)
テンプレートの使い方
UiPathのテンプレートとは
UiPathにはあらかじめ利用できる種々のテンプレートが存在しています。
有名なRE Frameworkもテンプレートの一種ですね。
StudioX用のテンプレート「タスク」を使用してプロジェクトを作成する
前述の画像にも載っている「タスク」という名前のテンプレートが該当します。
一覧にない場合は、テンプレートを検索して使用します。
「task」と検索することで表示されます。
「テンプレートを使用」をクリックすることで、タスクの生成画面が開きます。
名前と説明を入力したら「作成」をクリックしてプロジェクトを生成します。
詳細オプションはサッパリしており、StudioXにあったProjectNotebookに関する設定はありません。
作成が完了すると、GlobalHandlerX.xamlを含んだプロジェクトが作成されます。
プロジェクトフォルダの中を確認すると、Project_Notebookが2種作成された状態となっています。
ここまでで、少し違和感はあるものの、StudoXのタスクっぽいプロジェクトが出来上がりました。
「タスク」テンプレートが見つからない時は
テンプレート検索時「タスク」とカタカナで検索すると表示されないことが確認できました。
「task」と検索するようにしてみてください。
実際に使ってみる
Main.xamlを開いて開発を始める
Main ワークフローを開いて、開発の準備をします。
開いたMain.xamlにはSingle Excel Process Scopeが予め設置されています。
この点は、従前からStudioXで作成したタスクをStudioで開いた時と同じになっています。
プロジェクトノートブックの値を呼び出してみる
メッセージボックスを使用して、プロジェクトノートブックから今日の日付を表示してみます。
※プロジェクトノートブック自体の解説は前回の記事で行っています。
いつも通り+ボタンから参照しようとするのですが、シートやセルの名前が英語で表示されてしまいます。
これは、デフォルトで紐づいているプロジェクトノートブックが英語のファイルになっていることに起因します。
では、日本語にすることは可能なのか?可能です。
先程確認した通り、プロジェクトフォルダの中にはProject_Notebook.ja.xlsxも格納されていますので、紐づけを変えることで、日本語のプロジェクトノートブックを参照することが可能になります。
日本語のプロジェクトノートブックを使用する
さっそく、紐づけられたファイルの切り替えを行っていきます。
まずはStudioの画面右側から「データ マネージャー」タブを開きます。
StudioXでは変数の管理に使用したタブになります。
リソース>Notesを右クリックして、設定をクリックします。
表示された「リソースを管理」でExcelファイルを変更します。
「後で使用するための名前」が自動的に変更されるので「Notes」に戻しておきましょう。
ここで設定した名前が、後ほど「参照名」として表示されます。
ファイルを変更した後、OKをクリックすることでファイルの紐づけが変更となります。
これにより、+ボタンから日本語のプロジェクトノートブックを参照することが可能となります。
表示の違い
上記の実行結果を得たメッセージ ボックスのアクティビティは以下となります。
StudioXしか使ったことの無い方は違和感を感じるのではないでしょうか?
StudioXではプロジェクトノートブックの値を参照した場合、以下の形で表示されていました。
[ノートブックの参照名] シート名!セルアドレス
下図であれば 参照名「Notes」のプロジェクトノートブックの「Scratchpad」シートの「B1」セルを示していることが読み取れます。
シート名!セルアドレス という表記はExcel内で別シートを参照する時の表記と同じです。
これにより、プログラミングに不慣れであっても、参照元が直感的にわかるようになっていました。
(画像参照元:チュートリアル: プロジェクト ノートブックに独自の式を追加する
Studioでアクティビティ上で表示されている内容は、
式エディターの内容がそのまま表示されている形となっています。
これが、違和感の正体となります。
エディターの違い
使えるエディターは「式エディター」だけ
改めて、+ボタンをクリックしたところです。
StudioXでは利用場面によって「テキスト」や「数」といった項目が表示され、選択することで対応したエディタが開いていました。
対応したエディタの中で設定を行うことで、設定した内容がある程度自動的にString型、Int型に変換されるようになっていることで、型への意識を抑えることができる仕様となっていました。
Studioで操作する場合、上記の専用エディターが表示されなくなるため、式エディターで編集を行うことが必須となります。
式エディターには、StudioXのエディターと大きな違いがあります。
それは、エディタ内に+ボタンが無いことです。
エディタ内で「変数」や「プロジェクトノートブックの値」を呼び出すために、StudioXでは+ボタンを押して参照していましたが、式エディターでは「変数を使用」から選択する形に変更になっています。
そして「変数を使用」の一覧からは「プロジェクトノートブックの値」が呼び出せなくなっています。
プロジェクトノートブックの値を組み合わせて使う時
ここまでで紹介したエディターの変更で大きな影響を受けるのは、エディターの中で文字列とプロジェクトノートブックの値を組み合わせて使用するケースが考えられます。
具体的には、ファイル名にタイムスタンプを付ける処理を考えてみましょう。
テンプレートのExcelファイルをコピーして、
タイムスタンプ付きのExcelファイルを作成する。
と、言った処理で実行結果_YYYYMMDD.xlsx
を作成するような処理、見たことが無い方はいないかと…
StudioXであれば、テキストエディター内で簡単に表現することができた内容ですが、Studioで式エディターで行うには事前知識が必要となります。
コピー先 の式エディターには以下の通りに入力する必要があります。
まず、式エディターの中からプロジェクトノートブックの値を参照する事が出来ないので、先に+ボタンから参照しておきます。
呼び出した状態で、改めて+ボタンから式エディターを開きます。
必要な文字列を追加します。
ポイントは以下の通りです。
- 固定文字列の部分
実行結果_
と.xlsx
の部分は""
で括る - ノートブックの値を呼び出した部分に
.ToString
を付与して文字列に変換する - それぞれの文字列を結合して、ひとつの文字列となるように間に
&
を入力する
※文字列をひとつにするための記法は色々と種類があります
どれもStudioで開発を行ってきた方であれば当たり前の事ではありますが、
StudioXでのみ開発を行っていた方には、初見の設定ばかりとなっています。
それだけ StudioXのテキストエディターが親切に設計されていたということですね。
また、事前知識が必要と書いていますが、上記の例であればExcel内でセルの値と文字列を結合するのと同じ要領になるので、実は覚えるのは簡単だったりします。
上記のように設定することで、実行結果としてタイムスタンプ付きのファイルを生成することができました。
プロジェクトノートブックの値を複数組み合わせて使いたい時
では、プロジェクトノートブック内の複数の値を組み合わせて使いたい時はどのようにすれば良いのか、試してみたいと思います。
プロジェクトノートブック内に時間を取得する式を追加して、実行結果_YYYYMMDD_hhmmss.xlsx
を作成してみます。
先程と同じように、+ボタンでhhmmss
を参照してみます。
すると、中身はhhmmss
だけを参照する形に書き換わってしまいます。
※マウスを重ねると、式エディターの入力内容が表示されます
やり方はいくつか考えられます。
プロジェクトノートブックの中で完結させる
やり方その①です
一番、わかりやすいやり方はプロジェクトノートブックの中でYYYYMMDD_hhmmss
の形を作ってしまう事になります。
このようにすると、ひとつの値を呼び出すのと同じやり方で、実装することができます。
しかし、このやり方ではプロジェクトノートブックの中に参照するための値を全部定義しなければならなくなってしまいます。
プロジェクトノートブックの中の値を変数として予め取り込む
やり方その②です
プロジェクトノートブックの中の値を、予め変数として取り込んでおけば、「変数」として式エディターから呼び出すことが可能になります。
代入アクティビティを使って「保存先」で+ボタンを押し「変数を作成」します
変数を設定
と表示されるので、任意の名前を入力します。
以下ではYYYYMMDD
と変数に名前を付けています。
「保存する値」で+ボタンを押してプロジェクトノートブックからYYYYMMDDセルの値を設定します。
同様の設定をhhmmssにも行います。
この時、変数への格納処理は変数を使いたい処理よりも手前に配置するようにします。
設定がうまくいっていると、式エディターの中で「変数を使用」から参照できるようになります。
変数名の部分をクリックすることで、式エディターの中に呼び出すことができます。
同様にhhmmss
を呼び出し、最終的に欲しい文字列の形になるように成型すると、以下のような形となります。
実行結果として、日時までのタイムスタンプの入ったファイルを得ることができました!
※式エディタで変数を使用の表示一覧に、目的の変数が表示されない時は>
をクリックして表示の展開、折り畳みを行って調整をしてみてください。
このやり方では無駄な変数が増えて嫌ですか?
そこまで考えが至るのであれば、脱StudioXはすぐそこです。
式エディター内で複数のノートブックの値を参照する
やり方その③です
+ボタンからプロジェクトノートブックの中の値を参照した後、式エディターの中に記載されているNotes.Sheet("日付").Cell("YYYYMMDD")
という内容に注目します。
この記述は、要するにStudioの式エディターからプロジェクトノートブックの中の値を参照するためのルールになっています。
ルールさえ覚えてしまえば、式エディターの中で複数の値を参照することが可能になります。
そしてこのルールは.
を区切りに分解をしてみると、案外簡単だったりします。
Notes
の部分はプロジェクトノートブックの参照名です。
プロジェクトノートブックのファイルを設定する際に「後で使用するための名前」に入力した値に相当します。
Sheet("日付")
の部分は参照したいセルが存在するシート名の指定になります。
""
で囲まれた部分がシートの名前です。
Cell("YYYYMMDD")
の部分は参照したいセルの名前の指定になります。
""
で囲まれた部分がセルに付けた名前です。
実際に式エディターの中で呼び出してみます。
式エディターの中でN
と入力すると、候補でNotes
が表示されます。
Notes
に続けて.
を入力することで、シート名の候補が出てきます。
目的のシート名をダブルクリックすることで、Sheet
部分が自動入力されます。
さらに続けて.
を入力することで、セル名の候補が出てきます。
目的のセル名をダブルクリックすることで、CELL
の部分も自動入力されました。
ルールまで分解して解説を行いましたが、実は式エディターの中で候補を呼び出していくだけで必要なセル情報を呼び出せるようになっています。
式エディターも実はかなり親切な設計になっています。
あとはプロジェクトノートブックの値を組み合わせて使う時の項で紹介したポイントに従って組み合わせると、以下のような式が組みあがります。
実行することで、新たなタイムスタンプの付与されたファイルを生成することができました。
※セル名の選択の際、項目が多すぎて目的のセル名に辿り着けないことも発生するかと思います。そんな時は、適当なセル名を選んだあとCell("")
の""
内を任意のセル名に書き換えることで同じ結果を得られます。
さいごに
Studio内にStudioXの機能が内包されたという趣旨のアップデートを受けて、実際にどのようにすればStudioXライクな開発を行うことができるのか考え、プロジェクトノートブックの参照方法と式エディターの使用方法について紹介してみました。
実は紹介した内容は、Studioユーザーであっても、モダンプロジェクト化した後のExcel内のセルの値の参照方法と同じだったりします。
改めて、モダン化したStudioのプロジェクトと言うのは、様々なところでStudioXから輸入された要素が多いのだと学びになりました。
ちなみに、このアップデートは前回「プロジェクトノートブックの使い方について」の記事を書いた時点で、実は適用されていました。記事を読んだ時点でアクティビティパネル上の違和感に気付いた方がいらっしゃったとしたら、その方はStudioXマスターを名乗って良いと思います(笑)
長文となりましたが、最後までお読みいただき、ありがとうございました。