※本記事にはPRを含む場合があります。

こんにちは。『脱会社員』脱サラを応援し続けるブログ、運営者の『なかびー』です。

Power Automate Desktopの使い方を覚えるなら、最初は結果を目で確かめられる小さなフローから始めると、アクションと変数の関係を追いやすくなります。この記事で作るのは、練習用フォルダーにあるPDFの名前を集め、一つのテキストファイルへ書き出すフローです。ExcelやWebサイトの操作は使いません。

入力として用意するファイルは六つ。そのうち、input直下にある三つのPDFだけを選び、名前順の三行へまとめます。対象が空の場合や同名の出力がある場合は、書き込まずに止める設計です。どの設定で三件を選び、どの変数に名前が入り、どの条件なら書込みへ進めるのかを順に確認しましょう。

説明は2026年10月11日に確認したMicrosoft公式資料に基づきます。Windows 11、個人Microsoftアカウント、自分で開始するローカルの有人実行、Power Fxを無効にした従来式が前提です。資料名と期待値は架空の設計例で、PAD実機での動作確認や時間短縮の実測結果ではありません。

目次
  1. Power Automate Desktopを始める前に、端末と実行範囲を確認する
  2. 練習用フォルダーと、完成後の一覧を先に用意する
  3. 新しいフローにアクションを並べ、変数をつなぐ
  4. 一覧を新規ファイルに保存し、空や同名のときは止める
  5. ステップ実行と8つの確認例で、結果を照合する
  6. 保存したフローを次回使う前に、変更点を記録する

Power Automate Desktopを始める前に、端末と実行範囲を確認する

Windows端末、個人アカウント、本人の手動開始を確認する概念図

Windowsの種類と導入方法を確認する

Power Automate Desktopは、Windows上でデスクトップフローを作成・実行するためのアプリです。公式要件にはWindows 11のHome、Pro、Enterpriseなどが含まれますが、ARMプロセッサ搭載端末は対象外と案内されています。Windows 11という名称だけで判断せず、端末のシステム情報でプロセッサやシステムの種類を確認してください。

導入方法によって必要な権限も違います。Microsoft Storeからのインストールは標準のWindowsアカウントで行える一方、MSIインストーラーでは管理者権限が必要です。勤務先が管理するPCで使う場合は、個人の判断で別の導入経路へ切り替えず、利用を認められた方法を管理者に確認します。本例は、自分が管理するPCで架空資料を扱う前提です。

※表は横にスクロールできます。

確認項目 今回の前提 一致しない場合
OS・端末 対応するWindows 11、ARM以外 公式要件と端末情報を照合する
導入権限 認められた方法でインストール済み StoreとMSIの権限差を確認する
サインイン 個人Microsoftアカウント 職場・学校は組織の環境条件を確認する
実行方法 本人がPCで手動開始する有人実行 クラウド起動・無人実行の条件を別に調べる
式のモード 新規作成時にPower Fxを無効 記法を混ぜず、この記事用に新しいフローを作る
操作範囲 専用のローカル練習フォルダー 共有先や実業務資料を対象から外す

ローカルの手動実行と、クラウド起動を分ける

Windows Homeでも、ローカルの有人実行は公式の対応範囲に含まれます。一方、Homeからクラウド経由でデスクトップフローを起動することはできません。無料で作成や手動実行を始められることを、チーム共有、スケジュール起動、無人実行まで同じ条件で使えることと解釈しないようにしましょう。

職場・学校アカウントでは、既定環境のDataverseデータベースなどの条件も関係します。個人アカウント向けの練習と同じ手順になるとは限りません。対象端末、アカウント、機能の違いはMicrosoftの前提条件と制限で確認できます。本記事では料金比較や組織環境の構築をせず、条件が整ったローカル環境でのフロー設計に絞ります。

なお、ローカル実行という言葉は、処理のすべてがネット接続なしで完結するという意味ではありません。公式要件にはインターネット接続が含まれ、個人Microsoftアカウントのフロー保存先は個人用OneDriveと案内されています。入力ファイルの置き場所とフロー定義の保存先を区別し、練習用のパスへ顧客名などの秘密情報を入れないようにします。

練習用フォルダーと、完成後の一覧を先に用意する

入力6件から直下PDF3件を選び、TXT・PNG・下位PDFを除く概念図

入力と出力を別のフォルダーへ置く

自分のユーザーフォルダー内に「PAD練習」を作り、その下へinputとoutputを並べて用意します。outputはinputの中に入れません。今回は同期サービスや他の人から同時に変更されない、専用のローカル範囲を使います。デスクトップやドキュメントがクラウド同期の対象になっている場合もあるため、名前だけで保存場所を判断せず、実際のフルパスを確認します。

inputには次の六つの練習用ファイルを用意する想定です。PDFは自分で作った短いダミー文書、TXTとPNGも内容に意味のない見本にします。拡張子だけを変えて偽のPDFを作る必要はありません。今回読むのは名前ですが、後で人が中身を確認できる正常な見本を使う方が、資料の状態を説明しやすくなります。

※表は横にスクロールできます。

相対パスの例 種類 一覧に含めるか 理由
input/01_企画.pdf PDF 含める 直下で拡張子が対象
input/02_案内.pdf PDF 含める 直下で拡張子が対象
input/03_確認用.pdf PDF 含める 直下で拡張子が対象
input/memo.txt テキスト 含めない PDFではない
input/sample.png 画像 含めない PDFではない
input/archive/00_旧案.pdf サブフォルダー内のPDF 含めない 下位フォルダーは検索しない

「三行」の内容と順番まで決める

出力先はoutput内のpdf-list-01.txtです。中身の期待値は、一行目が「01_企画.pdf」、二行目が「02_案内.pdf」、三行目が「03_確認用.pdf」。各名前が一回ずつ現れ、パスや説明文が混ざらない状態を目指します。文字コードはUTF-8とし、最後の名前の後にも改行を一つ付ける設計です。

ファイル取得の条件は、フィルターを*.pdf、サブフォルダーを含める設定をFalse、並べ替えをName、降順をFalseにします。PDFを三つ用意していても、検索範囲を広げればarchiveの一件が加わるため、期待は四件になります。「三件なら何でもよい」とせず、名前と保存場所に対応した条件を先に決めておきましょう。

入力の六ファイルは処理の前後で残し、改名、移動、削除、内容更新をフローに加えません。入力表はファイル六件の記録であり、archiveというフォルダー自体を七件目のファイルとは数えません。この一覧は取得した時点の状態を表すもので、実行中に誰かが資料を追加・変更する環境の継続監視には使わない設計です。

新しいフローにアクションを並べ、変数をつなぐ

Filesから各CurrentItem.NameをNamesへ集め、JoinedTextに結合する概念図

空のフローを作り、従来式の記法にそろえる

Power Automateのコンソールで新しいフローを作成し、「練習_PDF名一覧_01」など目的が分かる名前を付けます。今回は作成時のPower Fxを有効にする設定をオフにします。以下の%InputFolder%や%Files.Count%は、この従来式で使う表記です。Power Fxの等号から始まる式を同じ欄へ混ぜないでください。新規作成と式の違いはフローの作成とデスクトップフローのPower Fxで確認できます。

デザイナーではアクション一覧から名前を検索し、中央のフローへ追加して、入力欄を設定します。記事の番号は説明用の「論理順」です。実際の画面の行番号がコメントや追加操作で変わっても、順序と条件ブロックの内側・外側が一致するように見てください。条件や繰り返しに付くEndはブロックの終端であり、フロー全体を止めるアクションではありません。

まず三つの「変数の設定」を置きます。変数名はInputFolder、OutputFolder、OutputFileです。最初の二つへは実在するinputとoutputのフルパスを入れます。たとえばC:\Users\sample\PAD練習\inputは架空の表記なので、そのまま使わず自分の環境へ置き換えます。三つ目の値は%OutputFolder%\pdf-list-01.txtとし、出力フォルダーとファイル名をつなぎます。

変数名を指定する欄にはInputFolderのような名前を設定し、値としてその変数を参照する欄では%InputFolder%を使う、という役割の違いがあります。フォルダー名の文字列「InputFolder」を直接渡すつもりではありません。変数選択機能から指定できる欄ではそれを使い、存在しない変数名や全角の記号が混ざっていないかを見ます。

全体の配線を二十四の論理行で確認する

次の表が、この練習で使うフロー全体です。条件が合わない時に止める行、繰り返しのEnd、同名チェックまで含めています。停止分岐を省いて「取得→書込」の二つだけにすると、表の動作にはなりません。入力したらすぐ一括実行せず、まず配置と設定を最後まで確認してください。

※表は横にスクロールできます。論理行番号はこの記事の説明用です。

論理順 アクション・ブロック 設定値 変数の状態 次へ進む条件
1 変数の設定 InputFolder = 自分のユーザーフォルダー内/PAD練習/input の実際のフルパス InputFolder:Text 次の論理行へ
2 変数の設定 OutputFolder = 同じ練習用親フォルダー/output の実際のフルパス OutputFolder:Text。inputの配下ではない 次の論理行へ
3 変数の設定 OutputFile = %OutputFolder%\pdf-list-01.txt OutputFile:Text 次の論理行へ
4 フォルダーが存在する場合 条件=存在しない、パス=%InputFolder% 変数生成なし 真なら5、偽なら7
5 フローを停止する 終了=エラーメッセージ付き、理由=入力フォルダーがありません 書込み未到達 終了
6 End 4の条件ブロック終端 次の論理行へ
7 フォルダーが存在する場合 条件=存在しない、パス=%OutputFolder% 変数生成なし 真なら8、偽なら10
8 フローを停止する 終了=エラーメッセージ付き、理由=出力フォルダーがありません 書込み未到達 終了
9 End 7の条件ブロック終端 次の論理行へ
10 フォルダー内のファイルを取得 Folder=%InputFolder%、File filter=*.pdf、サブフォルダー=False、Sort by=Name、Descending=False Files:List<File>、正常例のCount=3 次の論理行へ
11 If 左=%Files.Count%、演算子=等しい、右=数値0 件数が数値として比較される 真なら12、偽なら15
12 メッセージを表示 本文=対象PDFは0件です。一覧は作成しません。 Files.Count=0 次の論理行へ
13 フローを停止する 終了=正常に これは0件としての終了。ファイル作成成功ではない 終了
14 End 11の条件ブロック終端 次の論理行へ
15 新しいリストの作成 生成する空リストをNamesとする Names:List、Count=0 次の論理行へ
16 For each 反復する値=%Files%、現在項目=CurrentItem CurrentItem:File 各項目について17を実行、全項目後19
17 項目をリストに追加 追加値=%CurrentItem.Name%、追加先=%Names% Namesの内容は1周ごとに1件増え、全3周後は3件のText 次の論理行へ
18 End 16の繰り返しブロック終端 次のCurrentItemへ 次の論理行へ
19 テキストの結合 結合リスト=%Names%、区切り=標準、標準区切り=改行、Times=1 JoinedText:Text。3件のファイル名の間に2個の改行 次の論理行へ
20 ファイルが存在する場合 条件=存在する、パス=%OutputFile% 出力直前の存在ガード 真なら21、偽なら23
21 フローを停止する 終了=エラーメッセージ付き、理由=同名の出力があるため書き込みません 既存内容は保持、23へ到達しない 終了
22 End 20の条件ブロック終端 次の論理行へ
23 テキストをファイルに書き込む パス=%OutputFile%、テキスト=%JoinedText%、新しい行を追加=True、ファイルが存在する場合=既存の内容を上書きする、Encoding=UTF-8 設定は上書きだが、存在時は20→21で先に終了。競合のない単独実行の範囲 次の論理行へ
24 メッセージを表示 本文=作成処理が終了しました。対象%Files.Count%件・保存先%OutputFile%を開いて内容を照合してください。 終了表示と内容照合は別 人が3件のファイル名の集合/順序/元6件不変を照合

取得するFilesは、ファイル名だけの文字列ではない

論理行10の「フォルダー内のファイルを取得」では、入力フォルダー、フィルター、下位フォルダーの扱い、並べ替えを指定します。生成する変数をFilesとし、設定を閉じた後も各値を見直します。既定値がたまたま合っているかどうかより、今回の条件を意識して選ぶことが大切です。正式な入力欄はフォルダーアクションの説明に示されています。

FilesはFile型の項目を持つリストです。ファイル一つについて、名前やフルパスなどの情報を取り出せます。Files.Countはリストの件数であり、今回の正常な配置なら期待値は数値の3です。これを「PDFのページ数」「フォルダーを含む全項目数」と読まないようにしましょう。取得の直後にFilesを見ておくと、後段の結合に進む前に対象条件の誤りを見つけられます。

名前だけの一覧が目的なので、繰り返し内で使うのはCurrentItem.Nameです。CurrentItem.FullNameを選ぶと、フォルダーまで含むフルパスが出力へ入ります。どちらも利用できる情報ですが、今回の完成形は拡張子を含むファイル名だけです。日本語に翻訳された説明文を変数のプロパティ名へ置き換えず、Name、FullName、Countという識別子を区別します。型とプロパティは公式のデータ型プロパティで確認できます。

空のNamesを用意し、繰り返しで一件ずつ入れる

論理行15で新しい空のリストを作り、生成される変数をNamesにします。これをFor eachの外側に置くのがポイントです。ループ内で毎回空のリストを作ると、それまでの名前をためられず、最後の一件しか残らない設計になってしまいます。初期化は一回、追加は対象件数分、という位置関係を確認しましょう。

For eachの反復する値は%Files%、現在の項目を受け取る変数名はCurrentItemです。そのブロックの内側へ「項目をリストに追加」を置き、追加する値を%CurrentItem.Name%、追加先リストを%Names%にします。この操作はファイルの名前をリストへ入れるだけで、PDF本体のコピーや本文の読取りは行いません。資料の内容を一覧にしたい処理とは別です。

設計上の一周目では、CurrentItem.Nameが01_企画.pdfとなり、Namesにはその文字列一件が入ります。二周目の後は01_企画.pdfと02_案内.pdfの二件、三周目の後は03_確認用.pdfを含めた三件になります。Filesは取得したファイルのリスト、Namesは取り出した名前の文字列リストです。同じ三件でも持っている値の種類が違うことを、変数の表示で確認してください。

リストへ追加する操作をEndの後へ置くと、各回で追加する構造ではなくなります。画面で字下げを見て、For eachと対応するEndの間に入っているか確かめます。また、生成変数の名前を途中で変更したら、後続の参照も一致しているかを見ます。NamesとNewListが混在したまま進めないようにしましょう。基本は変数とリストのアクション、反復はループアクションを参照してください。

名前リストを一つの文章へ変換する

三件をためたNamesは、そのままでは複数項目のリストです。論理行19の「テキストの結合」で%Names%を指定し、区切りの種類を標準、標準区切り文字を改行、Timesを1にします。生成変数はJoinedTextです。ここで初めて、三つの名前が改行でつながった一つのテキスト値になります。

この段階の期待は「01_企画.pdf〈改行〉02_案内.pdf〈改行〉03_確認用.pdf」です。山かっこと「改行」は説明のための表記で、文字として入力するものではありません。区切りをなしにすれば名前が続き、スペースにすれば横に並びます。Timesを2にすると名前の間に余計な空行が入る原因になるため、今回は1へ固定します。正式な設定はテキストの結合で確認できます。

結合をFor eachの内側へ入れる必要はありません。全件のNamesがそろった後、Endの外側で一度だけ結合します。最初は「取得直後のFiles」「三周後のNames」「結合後のJoinedText」の三か所を順に見て、どの段階から期待と違うか説明できる状態にしましょう。これが、後から処理を直す時の切り分けにもなります。

一覧を新規ファイルに保存し、空や同名のときは止める

書込み前に同名出力を確認し、存在すれば停止する単独実行の概念図

フォルダーがない時と、対象がゼロの時を分ける

入力の場所を誤った状態と、正しい場所に対象PDFがない状態は、別の結果として扱います。論理行4はInputFolderが存在しないかを確認し、該当すれば5でエラーメッセージ付きの停止にします。ここではFilesをまだ取得していません。「取得結果が0だった」と記録する段階ではなく、対象の場所へ進めない状態です。

出力フォルダーについても7で存在を確認し、なければ8で止めます。今回のフローにフォルダーを自動作成するアクションは入れません。パスが一文字違っていた場合、その誤った場所へ新しいフォルダーを作って処理を続けるより、人が想定した出力先を確認する設計です。停止理由を入力と出力で分けると、直す変数を選びやすくなります。

入力と出力のフォルダーが存在し、Filesを取得できた後は、11のIfで%Files.Count%を数値の0と比べます。0ならメッセージで対象がないことを表示し、13で正常に終了します。ここでの正常終了は「0件なのでファイルを作らない」という予定どおりの終了です。三行の一覧を保存できた、という成功とは分けて記録します。

12のメッセージを表示しただけでは、後続の処理を止めたことにはなりません。13の「フローを停止する」を条件ブロックの内側へ入れておく必要があります。逆に停止をEndの外へ置くと、対象がある時まで終了する配置になってしまいます。条件の真偽と停止の位置を一緒に見てください。Ifの比較は条件付きアクション、終了方法はフロー制御アクションで確認できます。

※表は横にスクロールできます。

状態 期待する動作 残す記録
入力フォルダーなし 4→5で停止、取得しない InputFolderの値と入力不存在の理由
出力フォルダーなし 7→8で停止、取得へ進まない OutputFolderの値と出力不存在の理由
対象PDFが0件 11→12→13で終了、出力なし Files.Count=0、一覧未作成
同名の出力あり 20→21で停止、23へ進めない OutputFileと既存内容を残したこと
書込み時にエラー 完了表示へ進まず状態を確認 エラーのアクション、文言、時刻、出力の有無

存在チェックと書込みの設定を両方そろえる

論理行20では、「ファイルが存在する場合」に%OutputFile%を渡し、条件を存在するにします。その内側の21へエラーメッセージ付きの「フローを停止する」を置きます。同名ファイルを見つけたら、上書きか追記かを自動で決めずに終了する設計です。別名が必要なら、人がOutputFileを変更し、最初から条件を確かめます。

その一方で、23の書込みアクションにある「ファイルが存在する場合」の設定は、「既存の内容を上書きする」を明示的に選びます。このアクションには、既存内容を上書きするか内容を追加するかの選択肢があります。「どちらも選ばない」「存在したら何もしない」という別の設定がある前提にはしません。書込み先が存在しなければ、新しいファイルを作成する仕様です。

「同名なら停止するのに、上書きを選ぶのはなぜか」と感じるかもしれません。止める役割は20と21、書込み方法を指定する役割は23だからです。正常な単独実行では、20で不存在を確認した後だけ23へ進みます。存在していた場合は21で終了するので、23の上書き動作へ到達させません。この二段の設計をセットで使い、書込みアクションだけを取り出して実行しないでください。

23の設定は、ファイルパスが%OutputFile%、書き込むテキストが%JoinedText%、新しい行を追加がTrue、既存時の動作が上書き、エンコーディングがUTF-8です。読み取りアクションや別の製品と既定値が同じとは考えず、各欄で選びます。特にUTF-8とUTF-8のバイトオーダーマークなしは、表示上別の選択肢があるため、本例ではUTF-8を選んだと記録します。仕様はファイルへのテキスト書込みを参照してください。

改行は「項目の間」と「文章の最後」で役割が違う

Namesを結合する時の改行は、三つの名前の間に入れる二つの区切りです。書込み時の「新しい行を追加」は、JoinedText全体の最後へ改行を追加する設定です。今回は、名前と名前の間は一回ずつ、最後にも一回、という構成にします。各名前の文字列そのものへ手作業で改行を埋め込む必要はありません。

エディターによっては、末尾改行の後に空の四行目が見えることがあります。それだけでPDFが四件出力されたとは判断せず、名前のある三行を数えます。一方、名前同士の間に空行が入っている場合は、結合のTimesや元の文字列を見直します。行の見た目と、ファイル名が何回登場するかを分けると、改行の設定誤りを見つけやすくなります。

日本語が読めない場合も、名前を英数字へ変える前に、書込み側で選んだ文字コードと、開くアプリの読取り方法を確かめます。出力サイズの何バイトが正解かを先に決める必要はありません。改行の表現やバイトオーダーマークによってサイズの解釈が変わるため、最初は名前、順序、改行、読める文字という内容の一致を確認します。

存在チェックは同時実行を防ぐ仕組みではない

20の確認と23の書込みは、排他ロックや原子的な新規作成ではありません。たとえば20でファイルがないと判定した直後に、別の処理が同名ファイルを作れば、23の上書き設定によって内容を置き換える危険があります。チェックを置いたから、どんな環境でも既存ファイルを上書きしないという保証にはなりません。

そのため本例は、専用ローカルフォルダーを使い、フローを一つだけ実行し、他のアプリや人が同じ出力を作らない練習に限定しています。複数人の共有フォルダー、同時起動する仕組み、自動同期で別端末から変更される場所へ、そのまま持ち込まないでください。実運用に広げる場合は、出力名の設計や競合時の扱いを含めて別途検討する必要があります。

最後の24のメッセージは、作成処理が終了したことと、これから確認する保存先・件数を伝える内容にします。「完全に成功しました」とだけ表示するより、利用者がOutputFileを開いて照合する入口になります。メッセージの表示はメッセージボックスの公式説明を参照し、終了表示を実ファイルの検査の代わりにはしないでください。

ステップ実行と8つの確認例で、結果を照合する

正常・0件・再実行の期待値と、空欄の実測を分けた未実行の確認例

書込みへ進む前に、変数を三か所で見る

フローを組んだ直後は、デザイナーのステップ実行やブレークポイントを使い、区切りごとの値を確認します。Filesを見るなら10の実行後、Namesを見るならループが全件を終えた後、JoinedTextを見るなら19の実行後です。まだアクションを実行していない時点では、その出力変数が期待する値になっていなくても不思議ではありません。

ブレークポイントを23に置けば、書込みへ進む直前で止めて確認する目印になります。そこでOutputFileが練習用outputを指すこと、JoinedTextが3件のファイル名の一覧であることを見ます。ただし、停止中に出力先の状態が変わる可能性を考え、長時間置いた後に23から再開しないでください。同名ファイルを人が作った場合などは、そのまま進めず停止し、最初から存在確認をやり直します。

また、途中の行だけを選んで実行すると、前段の初期化や停止条件を飛ばす可能性があります。最初の確認では先頭から順に進め、書込み単体を動かす方法は使いません。保存先の確認を省かず、止めたい時に止められる状態で試します。デザイナーの機能と操作の入口はフローデザイナーの公式案内で確認してください。

期待する値を決め、実測欄は実行後に埋める

次の八例は、練習用の条件と期待値を分けた確認表です。実測欄は空欄で、判定は未実行にしています。自分のPCで試した日時、実際の件数、止まったアクション、出力ファイルの状態を書いてから判定してください。期待欄をそのまま実測へ写すと、不一致を見つけるための記録として使えなくなります。

※表は横にスクロールできます。

ケース 入力条件 期待値と停止位置 実測欄 判定
1 正常 表の六ファイル、同名出力なし Files.Count=3、Names.Count=3、23へ到達、3件のファイル名を出力 未実行
2 対象0件 別の空の練習inputを指定 Files.Count=0、12で案内、13で終了、23未到達 未実行
3 入力パス誤り 存在しない練習用パスを指定 5で停止、Files取得前、出力なし 未実行
4 同名出力あり outputに控え用の同名TXTを置く 20→21で停止、23未到達、既存TXTの内容不変 未実行
5 日本語と空白 別セットで02_案内 資料.pdfを使う 名前の空白を保ってNamesへ入り、UTF-8で読める 未実行
6 対象外 PDFに加えTXTとPNGを置く FilesにTXT/PNGが入らず、対象三件のまま 未実行
7 下位フォルダー archive内に00_旧案.pdfを置く サブフォルダーFalseで対象外、Files.Count=3 未実行
8 再実行 1の出力を残して同じ条件で再実行 21で停止、既存内容不変。単独実行の前提 未実行

不一致は、最初に違った変数から調べる

正常例でFiles.Countが4なら、結合の設定を変える前にFilesの内容を見ます。00_旧案.pdfが加わっているなら、10のサブフォルダー設定を確認します。TXTやPNGが混ざっているなら、フィルターが*.pdfになっているかを見ます。Filesがすでに違う段階で、後からNamesの件数だけを三つへ減らして合わせるような直し方はしません。

変数を見る位置も記録します。「17の前、繰り返し一周目」ならNamesはまだ空で、「17を一回実行した直後」なら一件あるのが期待です。同じ行の近くで止めたつもりでも、アクションの実行前後で値は違います。確認メモに何周目のどの操作後かを添えると、追加に失敗したのか、まだ追加前なのかを区別できます。

リストの項目を展開する際は、最初の項目がインデックス0、次が1、その次が2という対応にも注意します。三件目を見ようとしてインデックス3を指定すると、正常な三件リストの範囲外です。本例のFor eachは番号を手動で指定しなくても各項目を順に取り出せるので、追加の添字処理は作らず、変数を読む時の見方として押さえておきましょう。

Filesが三件なのにNamesが一件なら、リストの初期化がループ内に入っていないか、項目追加がループ外になっていないかを見ます。Namesが三件でもフルパスが入っていれば、17でNameではなくFullNameを指定した可能性があります。これらは「書込みが失敗した」という一つの説明にまとめず、値が変わった段階を具体的に確認します。

Namesが期待どおりで、JoinedTextだけが一行につながっているなら、19の標準区切りを確認します。JoinedTextが三行で、保存したファイルに同じ3件のファイル名が二回出るなら、既存ファイルへの追加設定や同名ガードの配置が疑われます。出力だけを手で直して終えず、23が何回実行され、どのファイルへ書いたかを記録して、原因を切り分けましょう。

日本語と空白の例は、既存の正常セットを書き換えず、別の練習用inputを作って確認します。そうすれば元の六ファイルを比較基準として残せます。空白を含む名前が分かれて見える場合は、画面の折返しなのか、値の中に区切りが入ったのかを確認します。文字を見やすくする表示と、データ自体を変更する操作を混同しないようにします。

停止の仕方と、既存ファイルの内容を両方見る

同名出力の例では、確認専用のTXTへ「既存内容を残す確認」と書いておきます。実行前にその内容を控え、フローが21で止まったか、23が実行されていないか、TXTの文章が変わっていないかを確認します。出力ファイルが存在するという事実だけでは、保護できたかどうかは分かりません。上書きされていても名前は同じだからです。

再実行の例では、一回目に作った三行の一覧を残したまま、最初から同じフローを実行します。対象を取得して名前を組み立てるところまでは進んでも、同名の確認で止まる設計です。最後の作成メッセージが出ないことも合わせて見ます。二回目の出力も残したいなら、確認後にOutputFileの名前を人が変え、旧結果を保持したまま別の実行として記録します。

入力の前後比較では、三つの対象PDFだけでなく、対象外のTXT、PNG、archive内PDFも確認します。名前と場所、サイズ、必要なら内容やハッシュを処理前の控えと比べます。ハッシュを取っていない場合はハッシュ一致と書かず、自分が確認した範囲を記録します。本フローには元ファイルを更新するアクションを入れていませんが、設計にない操作を誤って追加していないかも点検対象です。

設計時エラーと実行時エラーを分けて扱う

入力必須欄が空、存在しない変数を参照しているなどの問題は、実行前の設計時に示される場合があります。エラー一覧から該当アクションへ戻り、変数名、入力欄、データの型を確認します。赤い表示が消えたことと、実際に目的の結果ができることは別なので、修正後は該当する確認例を試します。

実行時に書込み権限の問題などが出た場合は、止まったアクション名、エラー文、時刻、OutputFileの実値を残します。23でエラーになったのに、24の完了メッセージだけへ進むようにエラーを無視する設定は加えません。また、出力がないか、途中の状態で残ったかを確認してから次を考えます。成功したと推定して再実行を重ねると、元の状態を追いにくくなります。

権限が足りない時は、専用フォルダーの場所と自分に認められた操作を確認します。会社の保護された場所へ書くために管理者起動やセキュリティ設定の変更で押し通すことは、この練習には含めません。エラーの区分と確認先はデスクトップフローのエラー処理を参照してください。確認表の作り方自体を詳しく知りたい場合は、テストケースの作り方も役立ちます。

保存したフローを次回使う前に、変更点を記録する

PADの版、Power Fx無効、入力と出力先を記録し未確認を残す概念図

フローの保存と、結果の保存を分けて記録する

デザイナーでフローを保存したら、フロー名、利用したPADのバージョン、Power Fxが無効であること、入力と出力のフルパスを控えます。ここで保存するのは処理の定義です。pdf-list-01.txtを作成したことや、中身を検査したことは別の欄へ残します。未実行なら、実行結果は未確認のままにします。

次回、InputFolderや拡張子、サブフォルダーの扱いを変えたら、前回の三件という期待も見直します。設定だけ変えて以前の合格を流用せず、変えた条件がどの行と確認例に影響するかを追います。出力名の決め方はファイル名のルールを参考にし、手元の版と渡す版を区別してください。

※表は横にスクロールできます。

変更日 変更した条件の例 再確認する箇所 未確認として残すもの
実際の日を記入 InputFolderを別の練習先へ 存在確認とFilesの取得内容 新しい対象の件数・名前
実際の日を記入 OutputFileの末尾を02へ 同名チェックと書込み先 新しい結果ファイルの中身
実際の日を記入 PADの版を更新 設定欄・変数・八つの確認例 更新後に実行していない例

別PCへの移行や他人との共有には、保存先、アカウント、ライセンス、アプリ版の条件が加わります。フローが保存できたから、どの環境へ送っても動くとは考えません。副業の仕事へ広げる前の担当範囲や保守条件は、RPAの副業を始めるための確認点で別に整理できます。

最初のフローで身に付けたいのは、部品を並べる速さより、FilesからNames、JoinedTextへ値が変わる理由を説明できることです。期待した名前がそろい、予定した条件で止まり、出力と元ファイルを確かめられたところまでを一つの学習記録にしましょう。

確認日:2026年10月11日。Microsoft Learnの現行資料を参照しています。記事は資料に基づく設計解説で、PAD実機、出力ファイル、ハッシュ一致、八例の動作は未検証です。図は説明用の概念図で、製品の実画面ではありません。画面名は版や表示言語で異なる場合があります。