デスクワークを超絶快適にするおすすめギアたち詳しく見る

Power Automate for desktopでCSVファイルを読み込む方法

この記事でわかること!

  • Power Automate for desktop(PAD)CSVファイルを読み込む方法がわかる。
  • PADの「CSVを読み取ります」アクションの使い方がわかる。
  • PADでCSVを読み込んだ時に文字化けしてしまった時の対処方法がわかる。
目次

Power Automate for desktopでCSVファイルを読み込む。

じょじお

Power Automate for desktop(PAD)でCSVファイルを読み込むのはメチャクチャ簡単です。「CSVファイルを読み取ります」アクションを使うだけです。

「CSVを読み取ります」アクションとは?

「CSVを読み取ります」アクション

  • CSVを読み取ります」アクションは、Power Automate for desktopでCSVファイルを読み込むためのアクションです。
  • 読み込んだデータはDatatable型の変数に格納されます。
  • CSVの他にもTSVやスペース区切り形式のファイルも、このアクションを使って読み込むことができます。

フローの作成

ぽこがみさま

まずは「CSVを読み取ります」アクションを使った簡単なフローを作ってみます。

フローの作成方法

STEP
CSVファイルを用意します。
Power Automate for desktop CSVの読み込み
C:\Users\user\Downloads\testdata.csv

▲今回読み取るCSVファイルです。データの中身の人名などは自動生成によるダミーデータです。

氏名,郵便番号,年齢,住所,ID,チェック
信田 芳彦,090-3725,46,三重県,8278,1
谷山 花穂,755-5043,49,徳島県,2606,0
岩淵 弥太郎,074-0036,48,佐賀県,1281,0
西野 貞,183-7239,31,東京都,7029,1
和泉 幸子,616-4758,27,群馬県,6262,1
河端 清美,498-8254,17,沖縄県,9091,1
上野 堅助,818-7813,45,和歌山県,202,1
松浦 和佳奈,557-5688,35,広島県,8078,0
岡元 三枝子,762-1983,60,高知県,546,1
常盤 武治,961-0340,41,高知県,2042,0
STEP
Power Automate for desktopを起動して新規フローを作成します。
STEP
「CSVを読み取ります」アクションを追加します。
Power Automate for desktop CSVの読み込み

▲「ファイル」アクショングループの中にある「CSVを読み取ります」アクションを追加します。

Power Automate for desktop CSVの読み込み

▲パラメータを入力します。

パラメータ

  • ファイルパス:C:\Users\user\Downloads\testdata.csv
  • エンコード:UTF-8
  • フィールドのトリミング:オン
  • 最初の行に列名が含まれています:オン
  • 区切り記号:システムの規定値
STEP
一度フローを実行します。
ぽこがみさま

フローを実行してみます!

Power Automate for desktop CSVの読み込み

▲一度フローを実行して結果を見てみます。「CSVを読み取ります」アクションの結果はCSVTable変数に格納されます。フローデザイナー画面の右側のCSVTable変数をダブルクリックして中身を確認してみましょう。

Power Automate for desktop CSVの読み込み

CSVTable変数の中身です。文字化けにせずにデータがとれていたらOKです。文字化けしていたらエンコードを変更して調整してみてください。

STEP
メッセージを表示アクションを追加します。

CSVTable変数から値を1個取り出す

ぽこがみさま

CSVTableから値を一個だけ取り出してみます。

Power Automate for desktop CSVの読み込み

▲わかりやすく「メッセージを表示」アクションを使って取り出した値を表示してみます。

Power Automate for desktop CSVの読み込み

▲パラメータは下記のように入力しました。CSVTable変数から値を取り出すにはカッコとインデックス番号を使って記述します。

パラメータ

  • 表示するメッセージ:1行目のデータは、%CSVTable[0][0]%さんです。
ぽこがみさま

1行目1列目のデータを取り出すには%CSVTable[0][0]%と書きます。詳しい書き方は後述します。

Power Automate for desktop CSVの読み込み

▲フローを実行すると上図のようにメッセージボックスが表示されます。CSVTableの1行目1列目のデータである氏名を取り出すことができました。

STEP
「For each」アクションと「メッセージを表示」アクションを追加します。

CSVTable変数から1行ずつ全行のデータを取り出す

ぽこがみさま

1件分のデータが取得できたので、全件のデータをループで取り出してみましょう。

Power Automate for desktop CSVの読み込み

▲「For each」アクションを追加します。

▲「For each」アクションのパラメータを入力します。

For eachアクションのパラメータ

  • 反復を行う値:%CSVTable%
Power Automate for desktop CSVの読み込み

▲「メッセージを表示」アクションを追加します。

Power Automate for desktop CSVの読み込み

▲「メッセージを表示」アクションのパラメータを下記のように入力します。

メッセージを表示アクションのパラメータ

  • 反復を行う値:%CurrentItem%
Power Automate for desktop CSVの読み込み

▲フローを実行すると、行数の数だけメッセージボックスが上図のように表示されます。今回のデータは10件あるので10回です。1行分のデータをまるっと取得で来ていることがわかります。

Power Automate for desktop CSVの読み込み

▲特定の列だけ取得したい場合はインデックス番号を付けます。上図は%CurrentItem[0]%と指定した場合の出力です。

STEP
おわり

Robinソースコード

File.ReadFromCSVFile.ReadCSV CSVFile: $'''C:\\Users\\user\\Downloads\\testdata.csv''' Encoding: File.CSVEncoding.UTF8 TrimFields: True FirstLineContainsColumnNames: True ColumnsSeparator: File.CSVColumnsSeparator.SystemDefault CSVTable=> CSVTable
Display.ShowMessageDialog.ShowMessage Message: $'''1行目のデータは、%CSVTable[0][0]%さんです。''' Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
LOOP FOREACH CurrentItem IN CSVTable
    Display.ShowMessageDialog.ShowMessage Message: CurrentItem Icon: Display.Icon.None Buttons: Display.Buttons.OK DefaultButton: Display.DefaultButton.Button1 IsTopMost: False ButtonPressed=> ButtonPressed
END

▲今回作成したフローのソースコードです。フローデザイナーにコピペするとフローを再現することができます。

CSVTable(Datatable変数)のデータの取り出し方

CSVTable(Datatable変数)からデータをひとつ取り出す方法

CSVTable変数はDatatable型の変数です。

CSVTable変数はDatatable型の変数です。Datatable型変数は行と列で構成されたExcelのデータ構造のような変数です。

Datatable型変数にアクセスするときはCSVTable[行番号][列番号]のように指定します。行番号・列番号は0から数えます。ですので1行目3列目のデータを取り出すにはCSVTable[0][2]となります。

CSVTable(Datatable変数)からデータを行単位で取り出す方法

Datatable型変数から行単位でデータを取り出すにはCSVTable[行番号]のように行番号のインデックスだけし得値すればOKです。行番号は0から数えるので1行目はCSVTable[0]です。

全行を取得・評価するには上で作成したフローのようにFor eachアクションを使うとループ処理の中で1行ずつ取得できます。For eachが返してくれるCurrentItemという名前の変数はDatarow型の変数です。

Datatable型変数を使ったその他の記事

じょじお

Datatable型変数はExcelの時にも登場しました。

ぽこがみさま

Excelを読み込むアクションもDatatableとしてExcelを読み込むんでした。

じょじお

Datatableについては、Excelを操作するフローのいくつかの記事でも詳しく解説しているのでそちらも参考になさってください。

「CSVを読み取ります」アクションのパラメータ

ファイルパス

CSVファイルのファイルパスを指定します。(パスとは?

エンコード

文字コードです。どれを選択するかは扱うCSVファイルによります。CSVファイルに合った正しい文字コードを選択しましょう。異なる文字コードを選択すると文字化けしてしまうので注意してください。

文字コード

  • UTF-8
  • Unicode
  • Unicode(ビッグエンディアン)
  • UTF-8(バイトオーダーマークなし)
  • Unicode(バイトオーダーマークなし)
  • システムの規定値
じょじお

どれを選択するべきかわからない場合は、システムの規定値か、現在最も使われているUTF-8をまずは試してみると良いかと思います。

フィールドのトリミング

各データの先頭・末尾にある空白を削除します。

最初の行に列名が含まれています

列名(ヘッダー)が含まれたCSVの場合、「最初の行に列名が含まれています」をオンにするとヘッダーとして使うことができます。ヘッダーのないCSVファイルの場合はオフにします。

Power Automate for desktop CSVの読み込み

▲「最初の行に列名が含まれています」をオンにするとCSVファイルの1行目のデータがヘッダーとして認識されます。

Power Automate for desktop CSVの読み込み

▲「最初の行に列名が含まれています」をオフにすると自動的にヘッダーが作成されます。もともとヘッダーを持つCSVファイルの場合はヘッダーもデータの一部として扱われます。

区切り記号

システムの規定値を選択すると、CSVのデフォルトである「カンマ」を区切り記号として認識します。

文字化けしてしまう。

ぽこがみさま

CSVファイルを読み込んだ時に文字化けが起こってしまったにゃ・・・!

じょじお

文字化けの原因はエンコードにあります。どれを選択するべきかわからない場合は、システムの規定値か、現在最も使われているUTF-8をまずは試してみて調整してください。

CSVファイルの書き込み

(準備中)

まとめ

じょじお

PADでCSVファイルの読み込みについて学習しました。

ぽこがみさま

このブログではRPA・ノーコードツール・VBA/GAS/Pythonを使った業務効率化などについて発信しています。
参考になりましたらブックマーク登録お願いします!

Power Automate学習教材

Power AutomateをKindleで学びたい方はコチラ

▲Kindleと紙媒体両方提供されています。デスクトップフロー、クラウドフロー両方の解説がある書籍です。解説の割合としてはデスクトップフロー7割・クラウドフロー3割程度の比率となっています。両者の概要をざっくり理解するのにオススメです。

Power Automate for Desktopの基本をしっかり学習するのにオススメです。この本の一番のメリットはデモWebシステム・デモ業務アプリを実際に使ってハンズオン形式で学習できる点です。本と同じシステム・アプリを使って学習できるので、本と自分の環境の違いによる「よく分からないエラー」で無駄に躓いて挫折してしまう可能性が低いです。この点でPower Automate for desktopの一冊目のテキストとしてオススメします。著者は日本屈指のRPAエンジニア集団である『ロボ研』さんです。

Power Automate クラウドフローの入門書です。日本語の解説書は数少ないのでレアかと思います。変数の解説から代表的なアクションの解説がされているので初心者におすすめの本です。

Microsoft 365/ Power Automate / Power Platform / Google Apps Script…

Power Automateを動画で学びたい方はコチラ

▲Udemyで数少ないPower Automateクラウドフローを主題にした講座です。セール時は90%OFF(1200円~2000円弱)の価格になります頻繁にセールを実施しているので絶対にセール時に購入してくださいね。満足がいかなければ返金保証制度がありますので安心してご購入いただけます。

この記事が気に入ったら
フォローしてね!

シェアしてくれたらウレシイ(·:゚д゚:·)
  • URLをコピーしました!
  • URLをコピーしました!
目次
閉じる