【UiPath】「メッセージボックス」アクティビティで遊ぶ【初心者】
UiPathの学習追体験記事です。
※あくまで学習中の脳内を記事にしたものなので、この記事で書かれてあることが”正しい”とは限りません。
参考:学習効率本5巻 「知識の自作」
0.動機

ということで、今回は謎を解明するべく、徹底的に「メッセージボックス」アクティビティで遊びたおすのだ!
ということで、「メッセージボックス」アクティビティを学習してみました。
以下、学習内容となります。
1.事前情報
まずは、「メッセージボックス」アクティビティについての説明文を見てみましょう。
「メッセージボックス」アクティビティとは?
公式
Google検索キーワード「UiPath メッセージボックス」1位の記事

ボタン機能が気になるところ。
2.学習プロセス
学習プロセスとは、
学習テーマに対して、問いを重ね、実践することで理解を深めていくプロセス
と定義しています。
今回の場合は、
学習テーマ:「メッセージボックス」アクティビティの機能
問い① :メッセージボックスの記入欄でできることは?
実践・理解:○○
問い②
…etc
という感じ。
では、以下から、「メッセージボックス」アクティビティについて学習していきます。
問い① メッセージボックスの記入欄でできることは?
はじめの問いは、メッセージボックスの記入欄でどんなことができるのか。
自分の言うメッセージボックスの記入欄とは、ココのこと。
文字列は記入できるとして、数字(int32)はできるのか?四則演算はできるのか?…etc
実践
データ型を揃えるのが重要そうだ。
実践の様子 文字列(String型)と数字(int32)で色々試す
まずは、ダブルクォーテーション(”)で囲んだ文字。いわゆる、String型のデータ。
問題なく表示できた。
ダブルクォーテーション(”)を外すと、
もちろん、エラー。
ダブルクォーテーション(”)を2セット(””、””)使うと、
よく分からない結果になった。
「”〇”+”〇”」にすると、
文字列がくっついた。
「+」でくっつくなら、「-」ではどうなる?
エラーとなった。
「+」で2つ以上くっつけてみる。
できた。
一旦文字列から離れて、数字を扱ってみる。
ダブルクォーテーション(”)なしで表示できた。
ダブルクォーテーション(”)ありではどうなる?
これも表示できた。

文字列としての「123」なのだろう。
「数字+”○○”」はできる?
エラーとなった。

基本的に1つの処理に対して1つのデータ型しか扱えないのだろう。
だったら、「”数字”+”文字”」はできる?
できた。
「”数字”+”数字”」は、もちろんできるね?
うん、できた。
ダブルクォーテーション(”)を抜いて、「数字+数字」の足し算はできる?
できた。

メッセージボックス内で四則演算もできるんだね。
割り算もできるよね?
うん、できる。
()がついた計算はできるかな?
エラーになった。
計算の順序はどのようなルールがあるのだろうか。
計算の順序は一旦置いといて、「=」を使ってみる。
自分でも何を表示してほしいのか分からない式を記入してしまった。
もちろん、エラーとなった。
「数字=数字」ならどうか。
「True」と返ってきた。

メッセージボックスはboolean値を返せるみたい。
「False」が見たい…
見れた。
「+」と「=」を含む式もいける?
いけた。
数字=”数字”はどうなる?
やはり、エラー。

「数字=文字」は、データ型が統一されていないからエラーが出るのだろう。
では、「文字=文字」はどうなる?
できた。
Falseが見たい…
見れた。
「文字+文字=文字」はどうなる?
これもできた。
順番を入れ替えると、
Falseとなった。
文字列から離れて、数字でもうちょっと試してみる。
小数点はどうなる?
小数点を含む答えも表示できた。
どっかで習った「分母に0は入らない」を試してみる。
Infinity!?
どっかで聞いたことあると思ったら、大分昔に聞いた曲のタイトルだった。
英単語の意味を調べると、
「無限」という意味があるらしい。
プログラミング的には、
計算の結果が∞となるとき、その値をInfinityと表現します。
具体的には、値を0で割るとInfinityが返ります。
引用元:https://talavax.com/variable-infinity.html
とのことらしい。
よく分からないから、触れないでおく。
せっかくなので、分子と分母両方「0」にしてメッセージボックスを実行してみた。
こわ。見なかったことにしよう。
気を取り直して、普通の計算をしてみる。
小数点以下がずっと続く答えは表示できるかな?
できた。
計算式に小数点を含む場合はどうだろう?
できた。
「文字/文字」の計算ができたりして、
うん、できないね。
計算順序を確認してみよう。
左から順番に計算された。
順番を入れ替えても…
やはり、左から計算された。
実践の様子 詳細エディターなんも分からん。
メッセージボックスの詳細エディターを開いてみた。
2行目に数字を入れるとエラーになった。
文字はどうだろう?
同じく、エラーになった。
詳細エディターの2行目以降は、どんなときに使用するのだろうか。
問い② プロパティ設定でなにができる?
問い①では、メッセージボックスの記入欄で色々試してみた。次は、プロパティを見てみる。
実践
ボタンから変数に格納される文字列が、ボタンのテキストと異なることに気づく。
実践の様子 変数の理解が進む
まずは、プロパティの入力欄を見てみる。
「キャプション」と「テキスト」対応関係は上記画像の通り。
キャプション欄でもメッセージボックスの記入欄(テキスト)と同じことができたりして、
「文字+文字」はできた。
数字はどうだろう?
エラーとなった。

文字列(String型)のみ扱えるのだろう。
入力欄の「ボタン」をいじってみる。
いつもボタンの表示は「OK」なので、「OK」と記入してみる。
エラーとなった。

なんで!?ボタンに表示されるテキストはこの欄で自由に変更できるってわけじゃないの?
ボタン欄の右側にある▼ボタンをクリックしてみた。
ここに表示される4つのみ扱えるみたい。
4つの中の「OK」を選択したら、エラーは消えた。実行してみた。
「OK」ボタンが表示された。

しかし、ボタンを設定しない状態でも「OK」ボタンは表示されていた。おそらく、「OK」ボタンが初期設定なのだろう。
他のボタンを試す。ボタン「OKCancel」。
うん。期待通りのものが表示された。
他の2つも同様だったため、割愛。
次は、プロパティの出力欄から変数(test)を設定して、変数の中身を確認してみた。
まずは、「OK」ボタンの出力内容をチェック。
そのまま、「OK」だった。
「キャンセル」はどうだろう?
「Cancel」だった。
「いいえ」は?
「No」だった。
一つ目は「はい」を選択。
二つ目は「いいえ」を選択。

上書きされる場合は「No」と出力、履歴がそのまま表示されるのなら、「Yes、No」みたいな感じで表示されるはず。
さて、どっち!
答えは「No」。

変数の中身は上書きされ、最新のものが残るのだろう。
ふと思った。変数同士を「+」でつなぐとどうなるのだろう?

メッセージ①で「はい」を選択したため、変数(test)の中身は「Yes」。「変数(test)+変数(test)」は「文字+文字」のために、エラーなく「YesYes」と表示されたのだろう。
となると、「変数(文字)+文字」もできるはずだよね?
できた。

まぁ、当たり前か。
変数は一旦置いといて、プロパティ設定にもどる。
その他欄の「プライベート」にチェックをいれてみる。

今の自分では違いが分からん。この部分は未来の自分に託す。
その他欄の「最前面」をTrueにすると、どのウィンドウを開いても常にメッセージボックスが最前面に表示された。Falseにすると、タブをクリックしないと最前面に表示されない。なにも設定しなければ、Trueの状態と同じだった(おそらく)。
実践の様子 詳細エディターなんも分からん。
メッセージボックス>プロパティ>出力>選択されたボタン
上記の詳細エディターを開いてみた。
2行目に記入すると、やはり、エラーになった。

詳細エディター、なんも分からん。
問い③ CSVファイルをメッセージボックスで表示できる?
以前、DataTable型データを変数に格納して、その変数をメッセージボックスで表示できるか試してみたところ、なにも表示されなかった。どうにかしてDataTable型データをメッセージボックスで表示できないだろうか。
実践
「データテーブルを出力」アクティビティを使用することで、DataTable型をString型に変換できる。
実践の様子 DataTable型をString型に変換するために
「CSVを読み込み」アクティビティを使用して、指定のCSVファイルを読み込み、変数CSVに出力する。そして、変数CSVをメッセージボックスで表示させるフローを作成してみた。
結果、「DataTable」と表示された。
もちろん、CSVファイルの中身に「DataTable」という文字はない。いったい、どこのデータを表示してるのだろうか。
もしかして、変数CSVの型を表示したってこと?
いちおう変数パネルから変数CSVの型を確認。
もちろん、変数CSVの型は「DataTable」だけど、、

う~ん、他の変数の型でも試してみるべきかな。いつかやろう(戦略的後回し)。
変数パネルで変数CSVの型を「DataTable」から「String」に変更してみた。
エラーとなった。

格納予定のデータは「DataTable」だけど、変数パネルで「String」に変更したから、String型のデータに自動で変換されまーすってわけにはいかないか。
「代入」アクティビティでDataTable型の変数をString型の変数に代入を試みる。
エラーとなった。

代入する場合も変数の型を揃える必要があるのだろう。
初心者の少ない引き出しで考えるも分からん。集合知へレッツゴー。
ググる。検索キーワードは「uipath 変数の中身」
良さそうな記事発見!
「データテーブルを出力」アクティビティを使用していた!
さっそく使ってみる。
「データテーブルを出力」のプロパティを上記画像のように設定。
入力欄のデータテーブルの変数CSVは、DataTable型のデータを格納している変数。
出力欄のテキストの変数CSV_strは、String型の変数。
これで、DataTable型のデータをString型に変換して、メッセージボックスで表示できる?
できた!!!!!
コンマ(,)で区切られているタイプのやつ!
満足!終わり!
3.まとめ
問い①では、
メッセージボックスの記入欄で色々試してみた。結果、以下のことが分かった。
・データ型を揃えることは大事
・True Falseの判断ができる
問い②では、
メッセージボックスのプロパティ欄をいじってみた。結果、以下のことが分かった。
・変数に格納される文字列データ
・各プロパティの役割
問い③では、
CSVファイルをメッセージボックスで表示できるか試みた。結果、以下のことが分かった。
・「データテーブルを出力」アクティビティで、DataTable型からString型に変換できる
・データ型の変換は簡単にできない(初心者目線)
全体を通して残った疑問は、以下。
・NaNってなに?
・メッセージボックスは変数の型を表示する場合がある?
・詳細エディターの使いどころは?
最後に一言言わせては、以下。

メッセージボックスは奥が深い。
4.参考文献
※無料で利用可能
コメント