テキストファイルを読み取る(全文・行別リスト・読取エラーを確認)
同じUTF-8の2行ファイルを、全文のテキストと行ごとのリストで読み比べます。入力例・出力の形・行数を図で確認し、ファイルがない場合の止まり方も試します。
画面上の名前は、表示言語やバージョンによって異なる場合があります。Desktopの例は、フロー作成時に「Power Fx を有効にする」をオフにした標準構文です。Power Fx対応フローでは式・変数参照・インデックスの書き方が異なります。このページでは変数を %変数名% と表記します。出力変数の名前を入力する欄では、前後の % は付けません。
実行前に確認
- Windows版Power Automate for desktopの有人・手動実行を前提とした練習です。外部コネクターやExcel接続は使いませんが、実行方法や組織環境に応じたライセンス・利用権限は確認してください。メッセージはOKを押すまで待機します。
- 全文とリストの違いを比べるため、同じ小さなファイルを2回読みます。2回の間に他のアプリなどが内容を書き換えると結果がそろわないため、実行中は編集しません。このフローからファイルの作成・追記・削除は行いません。
- 読み取り成功だけでは文字コードが正しいと保証できません。文字化けしたら元ファイルのエンコードを確認します。「システムの規定値」を常にShift-JISと決めつけず、この練習はUTF-8にそろえます。大きなファイルや機密情報は表示練習に使いません。
- リストは行ごとの文字列です。カンマを列に分ける処理ではありません。CSVを表として読む場合は専用の「CSV ファイルから読み取る」を使います。Word・Excel・PDFの内容抽出を、このテキストファイルの手順で代用しません。
- 図と件数の期待値は、空行・末尾改行のない2行/3行の入力に限定しています。空ファイルや連続する改行の扱いは実データで別途確認してください。任意の入力でFileLines[0]や[1]を使う前には、必要な項目数があるか確認します。
1使うアクション
- アクション 1変数の設定FilePathに練習ファイルの場所を設定
- アクション 2ファイルからテキストを読み取る1回目:全文をFileContentsへ
- アクション 3ファイルからテキストを読み取る2回目:行ごとのリストをFileLinesへ
- アクション 4メッセージを表示両方の読み取りに成功した後だけ、全文と行数を表示
図で見る処理のイメージ
概念図同じファイルを上から2回読み、出力の形を比べます。図は2つの設定の比較で、Ifによる条件分岐ではありません。
同じ2行でも、受け取る形が違う
入力:C:\PA\案内.txtUTF-8・2行
集合は9時です 受付は1階です
1行目の後だけ改行。空行・末尾改行は入れません。
↓ 同じファイルを2回読み、結果を比べる
1回目単一のテキスト値
FileContents
集合は9時です 受付は1階です
改行を含む1つのテキスト
2回目リスト
FileLines
- 位置[0]集合は9時です
- 位置[1]受付は1階です
1行が1項目。Count = 2
0と1は位置、2は件数この例は全文と件数だけを表示します。リストの[0]・[1]を表示に使う前は、項目数を確認します。
ファイルがなければ、読み取りで止まるこの練習のエラー停止設定では、FilePathが存在しないファイル → 1回目でエラー → 結果メッセージへ進まない
全文は改行を含む1つのテキスト、行別なら2項目のリストです。Countは文字数ではなくリストの項目数を表します。
狭い画面では、表を横にスクロールして入力と期待値を比べられます。
| 確認 | 入力・変更点 | 期待する結果 |
|---|---|---|
| A:基本の2行 | 集合は9時です/受付は1階です(/の位置で改行) | 全文は2行。FileLines.Countは2 |
| B:3行へ変更 | 基本の2行に「持ち物は筆記用具です」を追加 | 全文は3行。FileLines.Countは3 |
| C:ファイルなし | FilePathだけを、実在しない「存在しない.txt」へ変更 | 最初の読み取りでエラー停止。結果メッセージは表示しない |
図と表は設定から考えられる期待値です。サイト上ではファイルを読み込まず、実際のPower Automateフローを実行して確認した結果ではありません。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する8ステップの設定と確認方法
- 1
準備:WindowsのPower Automate for desktopで、Power Fxをオフにした練習用フローを作ります。読取権限のある C:\PA フォルダーを用意し、テキストエディターで案内.txtをUTF-8として保存します。1行目は「集合は9時です」、2行目は「受付は1階です」。1行目の後だけEnterで改行し、空行や末尾の改行は入れません。「」は入力しません。自動折り返しで2行に見えるだけの状態や、案内.txt.txtという名前に注意します。
- 2
変数の設定:変数名=FilePath、値=C:\PA\案内.txt。ファイルを別の場所に用意した場合は、そのフルパスに置き換えます。後続の2つの読み取りで同じ%FilePath%を使います。
- 3
1回目の「ファイルからテキストを読み取る」(Read text from file):ファイルパス=%FilePath%、内容の保存方法(コンテンツを次の形式で保存/Store content as)=単一のテキスト値(Single text value)、エンコード=UTF-8、生成された変数=FileContents。改行を含む全文が1つのテキスト値になります。読み取りアクションが出力を作るため、FileContentsの事前初期化は不要です。
- 4
2回目の同じアクションを、その直後へ追加します。ファイルパス=%FilePath%、内容の保存方法(コンテンツを次の形式で保存/Store content as)=リスト(各行をリスト項目にする設定/List)、エンコード=UTF-8、生成された変数=FileLines。出力名をFileContentsと同じにせず、2つの結果を分けます。リストを自分で初期化したり、別の「テキストの分割」を追加したりする必要はありません。
- 5
最後に「メッセージを表示」を追加します。タイトル=読み取り結果、本文の1行目=「全文:%FileContents%」、Enterで改行した次の行=「行数:%FileLines.Count%」。「」は入力しません。ボタン=OK、自動的に閉じる=オフ、出力名=ResultButton。FileContentsの中の改行も表示され、最後は「行数:2」になる想定です。
- 6
確認A:保存して先頭から実行します。全文の2行と「行数:2」を確認してOKを押します。変数一覧ではFileContentsはテキスト、FileLinesは2項目のリストです。先頭は%FileLines[0]%=集合は9時です、次は%FileLines[1]%=受付は1階です。0と1は位置、Countの2は件数です。このフローの表示には[0]や[1]を使っていません。
- 7
確認B:実行が終わってから案内.txtを編集し、3行目に「持ち物は筆記用具です」を追加して同じUTF-8で保存します。空行・末尾改行を入れず、先頭から再実行すると全文は3行、行数は3になる想定です。FileLinesの各項目も確認し、終わったら基本の2行へ戻して保存します。
- 8
確認C:実在しないことを確認したC:\PA\存在しない.txtへ、先頭のFilePathだけを変更して先頭から実行します。最初の読み取りでFile not foundに相当するエラーとなり、結果メッセージへ進まないことを確認します。両方の読み取りの「エラー発生時」はフロー停止のままにし、再試行・エラー無視・外側のブロックによる継続は使いません。フォルダー不在ならDirectory not found、その他の読取問題ならFailed to read from fileなど、実際のエラーとパス・拡張子・読取権限を確認します。失敗後の出力変数を今回の読取結果として使わず、FilePathを元へ戻して再実行します。
- 対象環境
- Power Automate for desktop(Windows)
- 更新日
- 2026年10月13日