Power Automate for Desktop(以下、PAfD)では変数を使う際に型を自分で宣言しません。これが原因でエラーに遭遇することもあるため、今回はこの点について確認しておきましょう。

「フォルダー内のファイルを取得」アクションでつまずく

PAfDを使っていて、また同じミスをしてしまいました・・・。

今回のワークフローは簡単にまとめると

  1. 特定のフォルダを空にする(今回は「C:\テスト」とします)
  2. Webサイトからファイルをひとつダウンロードする
  3. フォルダからファイル名を取得
  4. フォルダ内のファイルを開く

というものでした。

3と4の流れをワークフローにするには

  • 「フォルダー内のファイルを取得」
  • 「アプリケーションの実行」

という2つのアクションを使います。

なお、ダウンロードしたファイルそのものを開くための「ファイルを開く」というアクションはPAfDには存在しません。

そのため「アプリケーションの実行」アクションで、対象となるファイルのパスを直接指定することでファイルを開きます。

それぞれのアクションの具体的な設定内容は以下の通りです。

「フォルダー内のファイルを取得」・・・C:\テストフォルダを読み取って、PDFファイルを変数「Files」に入れる

「アプリケーションの実行」・・・ダウンロードするファイル数は1つという前提なので、変数「Files」をアプリケーションパスとして指定する

この設定で「アプリケーションの実行」アクションを保存すると

パラメーター:’アプリケーション パス’:引数’アプリケーション パス’は’ファイル’である必要があります。

というエラーが発生します。

ちなみにC:\テストフォルダには、今回「test.pdf」というファイルを保存しています。

「アプリケーションの実行」アクションでアプリケーションパスに「C:\テスト\test.pdf」と入力すると、問題なくこのファイルを開くことができます。

このエラーを解決するには

アプリケーションパスに「%Files[0]」と指定する

という方法を使います(太字・赤字は強調のためのものです)。

フォルダにファイルがひとつしかない場合の対処法

ちなみに、ダウンロードするファイルが複数あり、順番に開きたい場合には「アプリケーションの実行」を「For Each ~ End」で挟んで、アプリケーションパスを「%Files%」から「%CurrentItem%」に変更することで対応可能です。

フォルダにファイルが複数ある場合の対処法

冒頭で「同じミスをした」と書いたのは、以前同様のミスをしてしまい、その経緯を以下の記事にまとめていたのにまた間違えたからです・・・。

広告

「フォルダー内のファイルを取得」アクションを使ったときの変数の型とは?

Excelマクロでは、こうしたエラーを避けるために変数名と型を先に宣言してからコードを書くという方法が使われますが、PAfDでは変数名と型の両方とも自動的に設定されます。

変数名はアクションの中で簡単に見えるので意識することができますが、型については変数ペインで変数を開かないと確認することができません。

変数ペインで変数名をダブルクリックした状態

では、今回使った「フォルダー内のファイルを取得」アクションが作る変数はどんな型になるのか?

MicrosoftのPower Automateのサイトに、変数の型についての解説があります。

変数のデータ型 – Power Automate

この解説の中に、「高度なデータ型」のひとつとして「リスト」が挙げられていますが、ここに

フォルダ内のファイルを取得する アクションは、ファイルのリストを返します

リストの特定の項目を取得するには、次の表記を使用します : %VariableName[ItemNumber]%

と書かれています(強調は筆者による)。

つまり、「フォルダ内のファイルを取得する」アクションを使った場合は、その変数は必ず複数行のデータを扱うリスト型という変数になります。

リスト型の変数を使う時は「何番目のデータを使う」ということをPAfDにきちんと伝えないとエラーになるよ、ということです。

だから、アプリケーションパスを指定する際には、「%Files%」ではなく「%Files[0]%」と書く必要があったわけです。

広告

エラーが出たら変数の型を少しだけ疑ってみる

PAfDでは変数名も型も自動で設定してくれて、特に変数の型は通常は意識することなく使えるため非常に便利です。

ところが、今回のようなエラーに遭遇してしまうと、慣れていない方には原因がなかなかつかめません。

「フォルダ内のファイルを取得」というアクションは非常に便利なため、PAfDを使い始めた方でも利用するケースは多いと思われます。

そのためもし

慣れてない方が使ってエラーに遭遇する → 「PAfDってこんな簡単な処理でもエラーになるの?」 → 「使えない」

という判断をしてしまうと、とてももったいないな、と感じます。

また変数の型については他にも「テキスト」と「数値」は異なるものとして扱われます。

見た目から「数値」だと思っていたら「テキスト」型だったためにエラーになる、といったケースもあります。

PAfDを使い始めた頃に変数の型を疑うというのは結構難しいことではありますが

「エラーがでたときに変数の型も確認した方がいいよ」

という事例として参考にしていただければと。

投稿者

加藤 博己
加藤 博己加藤博己税理士事務所 所長
大学卒業後、大手上場企業に入社し約19年間経理業務および経営管理業務を幅広く担当。
31歳のとき英国子会社に出向。その後チェコ・日本国内での勤務を経て、38歳のときスロバキア子会社に取締役として出向。30代のうち7年間を欧州で勤務。

40歳のときに会社を退職。その後3年で税理士資格を取得。

中小企業の経営者と数多く接する中で、業務効率化の支援だけではなく、経営者を総合的にサポートするコンサルティング能力の必要性を痛感し、「コンサル型税理士」(経営支援責任者)のスキルを習得。

現在はこのスキルを活かして、売上アップ支援から個人的な悩みの相談まで、幅広く経営者のお困りごとの解決に尽力中。

さらに、商工会議所での講師やWeb媒体を中心とした執筆活動など、税理士業務以外でも幅広く活動を行っている。
広告