変数型の「プロパティ」について学ぶ

Power Automate Desktop
変数型の「プロパティ」について学ぶ

Power Automate Desktopの変数には「型」というものがあるのは、以前書いた記事で紹介しました。実はその型に紐づけられているような形でプロパティというものがあり、プロパティを利用することで簡単に文字列の数を数えたり、リストのサイズを数えたりすることができるようになります。

例えば、データテーブル型の変数には下図のように「.RowsCount」「.IsEmpty」「.Columns」「.ColumnHeadersRow」という4つのプロパティがあります。このページでは全てのプロパティを紹介することはできませんが、一般的な使い方とその中の代表的な例をいくつか紹介していきたいと思います。

この記事は「型」について理解している前提で話を進めていきます。もし「型」についてわからないという方は先に下記リンク先で「型」を先に学習してください。また、このページの作成にあたっては、公式サイトを参考にしています。より詳しい情報については公式を参照下さい。

→「型」について学ぶ →公式サイトを参照する

1. プロパティの使い方

まず、一般的なプロパティの使用方法について紹介します。Power Automate Desktopの多くのテキスト入力画面の右側には変数を選択できるように{x}と書かれたアイコンがあると思います。こちらをクリックすると、利用可能な変数一覧が表示されます。その変数のプルダウンを開くと更に選択肢がいくつか表示されます。これらがプロパティとなります。それをダブルクリックすると選択することができます。またプロパティがプロパティを更に持っていることがあり、下図の例で言うと、「.Columns」「.ColumnHeadersRow」が更にプロパティを持っていることになります。このようにプロパティは何層にも渡ることがありますが、いずれもプルダウンを開いて、ダブルクリックすることで選択することができます。うまくプロパティを選択できると、変数名の横にピリオド(.)を挟んで選択したプロパティ名が追加されます。

2. テキストプロパティ

テキストプロパティには「.Length」「.IsEmpty」「.ToUpper」「.ToLower」「.Trimmed」の5種類があります。これらの使い方を見ていきましょう。

まず下図のように「 Hello World」というテキストを変数に代入します。その際、最初に半角の空白を入れるのを忘れないで下さい。

次にこの変数のプロパティをメッセージに表示させてみます。「メッセージを表示」に下図のようにプロパティを追加してください。

実行結果は以下のようになります。「.Length」プロパティはテキストの文字数を数えています。この際、半角空白も文字列として認識されているので12文字となります。「.IsEmpty」は変数の中身が空だったらTrue、そうでなければFalseを返すプロパティです。今回は文字列が入っているので、Falseが入っています。「.ToUpper」は文字列は全て大文字で返してくれます。「.ToLower」はその逆で文字列を全て小文字にしてくれます。「.Trimmed」はよく見てみないとわかりませんが、最初に空けた半角がトリミングされなくなっています。このように文字列の前後の空白を削除することができます。

3. 日付プロパティ

日付プロパティには「.Year「.Month」「.Day」「.DayOfWeek」「.DayOfYear」「.Hour」「.Minutes」「.Second」の8種類があります。これらの使い方を見ていきましょう。

まず下図のように「現在の日時を取得します」というアクションを追加してください。これで日付型の変数「CurrentDateTime」が作成されます。

次にこの変数のプロパティをメッセージに表示させてみます。「メッセージを表示」に下図のようにプロパティを追加してください。

実行結果は以下のようになります。「.Year」プロパティは格納されている年を西暦で返してくれます。同様に「.Month」は月を、「.Day」は日を、「.DayofWeek」は曜日を、「.Hour」は時間が何時かを、「.Minute」は分、「.Second」は秒を返してくれます。「.DayOfYear」は1/1から始めて何日目かの値を返してくれます。

4. リストプロパティ

リストプロパティには「.Count」プロパティがあります。この使い方を見ていきましょう。

まず下図のように「変数の設定」というアクションからリストを作成します。リストの中身は1、2、3、4、5でリストの数は5つあります。

次にこのリストの「.Count」プロパティを表示させます。「メッセージを表示」に下図のプロパティを追加してください。

実行結果は以下のようになります。「.Count」プロパティは下図のようにリストのサイズを返してくれます。ループなどの別のアクションと一緒に使われることが多いので、使いこなせるようになっていきましょう。

5. ファイルプロパティ

ファイルプロパティには「.CreationTime」「.LastAccessed」「.LastModified」「.Name」「.FullName」「.NameWithoutExtension」「.Extension」「.Size」「.RoopPath」「.Directory」「.Exists」「.IsEmpty」「.IsHidden」「.IsArchive」「.IsReadOnly」「.IsSystem」プロパティがあります。この使い方を見ていきましょう。

まず下図のように「一時ファイルの取得」と「テキストをファイルに書き込みます」という2つのアクションを追加します。これでTempFileという変数に一時ファイルのオブジェクトが格納され、その中にはHello Worldと書き込まれています。

次にこの変数のプロパティをメッセージに表示させてみます。「メッセージを表示」に先ほど紹介したプロパティをすべて追加してください。

実行結果は以下のようになります。「.CreationTIme」プロパティは下図のようにファイルの作成日時を返してくれます。「.LastAccessed」は最後にアクセスした日時を返します。今回は、1回しかアクセスしていないので、作成日時と同じですね。「.LastModified」は最後に更新した日時を返します。「Name」でこの一時ファイルのファイル名を取得できます。「.FullName」とした場合はフルパスでファイル名を表示してくれます。「.NameWithoutExtensiton」は拡張子抜きのファイル名を表示し、「.Extension」は拡張子を表示します。「.Size」はファイルのサイズをバイト単位で表示します。「.RootPath」はファイルのルートパス(一番上の階層のパス)を表示します。今回で言うと「C:」になります。「.Directory」はファイルがあるフォルダを指し示しています。「.Exists」は指定したファイルが存在するかどうかを確認できます。「.IsEmpty」はファイルの中身が空の時はTrueになります。今回は「Hello World」を書き込んだのでFalseになりました。「.IsHidden」はファイルが非表示になっているかどうかを返します。「.IsArchive」でファイルがzipなどに圧縮されているかどうかを確認できます。「.IsReadOnly」はファイルが読み込み専用になっているかどうかを示しています。「.IsSystem」はOSの動作に必要不可欠なシステムファイルかどうかを確認できます。システムファイルをいじるとパソコンが起動しなくなったりするので、こちらがTrueの時はむやみに触れないようにしましょう。

6. フォルダプロパティ

フォルダプロパティには「.CreationTime」「.LastModified」「.Name」「.FullName」「.RoopPath」「.Exists」「.IsEmpty」「.IsHidden」「.Parent」「.FilesCount」「.FoldersCount」プロパティがありますが、「.Parent」「.FilesCount」「.FoldersCount」以外のプロパティはファイルプロパティと共通の動きをします。なので、今回はファイルプロパティにはない3つの使い方をしっかり見ていきましょう。

まず下図のように「フォルダの作成」と「テキストをファイルに書き込みます」という2つのアクションを追加します。これでContentというフォルダの直下に「test」というフォルダが作成され、更にtestフォルダの下に「test.txt」ファイルが作成され、「hello」というテキストが書き込まれます。このフォルダには同時に作成されるNewFolderという変数からアクセスすることができます。

次に作成された変数のプロパティをメッセージに表示させてみます。「メッセージを表示」に以下のようにプロパティを追加してください。

実行結果は以下のようになります。「.FilesCount」と「.FolderCount」のプロパティはフォルダの中にあるファイルの数とフォルダの数をそれぞれ数えてくれます。今回はフォルダを作成した後に、ファイルを作成しているので、ファイルの数は1個と表示されています。そして、フォルダは作成していないのでこちらは0となっています。「.Parent」は指定したフォルダの親フォルダを表示するので、今回は「Content」フォルダがフルパスで表示されています。

7. データテーブルプロパティ

データテーブルプロパティには「.RowsCount」「.Columns」「.IsEmpty」「.ColumnHeadersRow」プロパティがあります。これらの使い方をしっかり見ていきましょう。

まず下図のように「変数の設定」アクションからデータテーブルを作成します。今回はcol1、col2、col3の列名を2行持つ2行3列のテーブルを作成しています。

次に作成した変数のプロパティをメッセージに表示させてみます。「メッセージを表示」に以下のようにプロパティを追加してください。

実行結果は以下のようになります。「.実行結果は以下のようになります。「.RowsCount」は行の数を数えます。今回は2行あるので2と表示されていますね。「.IsEmpty」はデータテーブルに行がない場合、Trueを返します。「.Columns」は列名をリストで取得します。「.ColumnHeadersRow」はテーブルヘッダーを含むデータ行を取得します。今回は列名のcol1、col2、col3が取得できています。

8. データ行プロパティ

データ行プロパティには「.ColumnsCount」「.ColumnNames」プロパティがあります。これらの使い方をしっかり見ていきましょう。

まずテーブルデータプロパティを紹介した時と同様に「変数の設定」アクションからデータテーブルを作成します。その次にもう一度「変数の設定」アクションを指定し、最初のフローで作成された変数に[0]を付け加えて代入することで、テーブルデータの1行目を取得します。

次に作成した変数のプロパティをメッセージに表示させてみます。「メッセージを表示」に以下のようにプロパティを追加してください。

実行結果は以下のようになります。「ColumnsCount」は列の数を数えます。今回は「col1」「col2」「col3」で3列あるので3と表示されています。「.ColumnsName」は列の名前をリストで表示するのでcol1、col2、col3と表示されていますね。

いかがでしたでしょうか。いくつかのプロパティについてここまで紹介させていただきましたが、プロパティはまだまだたくさんの種類があります。ぜひ色々ご自分で試してみて、たくさんのプロパティを使いこなせるようになってください。

→他の記事も見る

執筆者プロフィール

伊藤 丈裕

(株)サムテックのシステムエンジニア。応用情報技術者資格保有。
27歳の時、営業から完全未経験で転職。開発とWebマーケティングを担当。得意言語はJavaとJavaScript。