スポンサーリンク

Power Automate DesktopでExcelの操作を自動化する方法[#3]-ダイアログボックスの表示

スポンサーリンク
Power Automate Desktop

はじめに

この記事では、Power Automate DesktopでExcelの操作を自動化する手順で、ダイアログボックスを表示してファイルの保存先を選択できるフローの作成を行う方法を紹介します。

また、今回は前回紹介している「Power Automate DesktopでExcelの操作を自動化する方法[#1]」で作成したフローを汎用的に使用できるよう修正を行います。

最後にはフローをコピーできるようにフローをテキストで表示していますので、是非活用してください。

Power Automate Desktopのインストール

まだPower Automate Desktopをインストールしていない方は【 Power Automate Desktopをインストールする手順 】の記事で紹介していますので、ぜひ参照してみてください。

Power Automate Desktopのリファレンス

Power Automate Desktopのフロー作成にてアクションの使用方法などがわからない場合はMicrosoftのアクション リファレンスを参照してください。

前回紹介したPower Automate Desktopに関する記事

Power Automate Desktopを使用したWebブラウザやExcelの操作自動化に関する記事も紹介していますので、ぜひ参照してみてください。

Webブラウザの操作自動化に関する記事

Excelの操作自動化に関する記事

作成したフローのコピーや共有に関する記事

Excelの自動操作

Power Automate Desktopを用いたExcel操作の自動化を機能ごとに紹介していきます。
紹介した自動化処理を組み合わせることにより、Power Automate Desktopを使用してExcelの自動化で様々なことができるようになります。

今回は前回の「Power Automate DesktopでExcelの操作を自動化する方法[#1]」で作成した【 Excelの起動からデータを書き込み保存して終了 】フローを修正していきます。

保存するExcelファイル名を指定(ダイアログボックスの表示)

【 Excelの起動からデータを書き込み保存して終了 】のフローを【 保存するExcelファイル名を指定 】できるように修正したフローの動作は以下のようになります。
※修正点としては、保存するExcelのファイル名をユーザが指定できるようになります。

【保存するExcelファイル名を指定】の動作

では早速フローを作成していきます。
※このフローは、前回紹介した「Power Automate DesktopでExcelの操作を自動化する方法[#1]」で作成した【 Excelの起動からデータを書き込み保存して終了 】フローを変更していきます。

アクションの【 フォルダー 】から【 特別なフォルダーを取得 】を【 Excelの起動 】の前に追加します。
※ここで【 特別なフォルダーを取得 】を追加するのは、汎用的に保存先フォルダーを指定するために、ドキュメントパスを取得するために追加を行っています。

フォルダから特別なフォルダーを取得を追加

【 特別なフォルダーを取得 】パラメーターの【 特別なフォルダーの名前 】から【 ドキュメント 】を選択し【 保存 】をクリックします。

※ここで設定するものは【 ドキュメント 】以外でも問題ありませんが、Excelなどを保存する際のデフォルトの保存先が【 ドキュメント 】指定となっているため、今回は【 ドキュメント 】を指定しています。
また【 特別なフォルダーのパス 】に表示されている値は【 ログインをしているユーザ名 】によって異なります。

特別なフォルダーの名前からドキュメントを選択

次に【 メッセージボックス 】の【 ファイルの選択ダイアログを表示 】を先ほど追加した【 特殊なフォルダーを取得 】の後ろに追加します。

※ここで【 ファイルの選択ダイアログを表示 】を追加するのは、保存名を入力するウィンドウを表示させるためです。

メッセージボックスからファイルの選択ダイアログを表示を追加

【 ファイルの選択ダイアログを表示 】パラメーターの【 ダイアログのタイトル 】に【 名前を付けて保存 】と入力し【初期フォルダー】には、先ほど追加した【 特別なフォルダーを取得 】で生成された【 SpecialFolderPath 】変数を【 選択 】します。

ダイアログのタイトルを設定、初期フォルダーに変数を設定

【 ファイルの選択ダイアログを表示 】パラメーターの【 ファイルフィルター 】には【 *.xlsx 】と入力し【 保存 】をクリックします。

※ここで【 *.xlsx 】を指定するのは、保存するExcelの拡張子をするためです。
また、複数の拡張子を入力する場合は【 *.xlsx;*.xls 】と拡張子の間に【 ;(セミコロン) 】を追加します。

ファイルフィルターに値を入力

次にファイル名が入力されたか判定を行うためにアクションから【 条件 】の【 If 】を先ほど追加した【 ファイルの選択ダイアログを表示 】の後ろに追加します。
※ここで【 If 】を追加するのは、保存ファイル名が入力されなかった場合にフローの処理を終了するために追加します。

条件からIfを追加

【 If 】パラメーターの【 最初のオペランド 】に【 ファイルの選択ダイアログを表示 】で生成された【 SelectedFile 】変数の【 .IsEmpty 】を選択します。

※ここで【 .IsEmpty 】を指定するのは、入力された値が【 SelectedFile 】変数に有る場合は【 True 】を返し、無い場合は【 False 】と判定できるので【 .IsEmpty 】を設定しています。

最初のオペランドを設定

【 If 】 パラメーターの【 演算子 】に【 と等しい(=) 】を選択し、【 2番目のオペランド 】に【False】と入力し【 保存 】をクリックします。

演算子と2番目のオペランドを設定

先ほど追加した【 If 】内に最初から存在していた(【 Excelの起動 】から【 Excelを閉じる 】)フローを移動させます。
移動が完了したら【 Excelを閉じる 】をダブルクリックしパラメーターを表示させます。

Excelを閉じるをダブルクリックで開く

【 Excelを閉じる 】パラメーターの【 ドキュメントパス 】に入力されている値を削除し【 {x} 】をクリックします。

ドキュメントパスの値を削除

変数から【 SelectedFile 】を選択します。

ドキュメントパスに変数を設定

【 ドキュメントパス 】に選択した【 SelectedFile 】が入力されていることを確認し【 保存 】をクリックします。

ドキュメントパスに変数が設定されていることを確認

【 保存するExcelファイル名を指定(ダイアログボックスの表示) 】で作成したフロー全体の流れは以下のようになります。

保存するExcelファイル名を指定のフロー全体像

今回作成したフロー(Robin)

【 保存するExcelファイル名を指定(ダイアログボックスの表示) 】で作成したフローを以下に載せておきます。ぜひ試してみてください。
もし、フローの貼り付け方がわからない場合は、【 Power Automate Desktopで作成したフローをコピーする方法 】のフローの貼り付け方法を参照してみてください。

保存するExcelファイル名を指定(ダイアログボックスの表示)[Robin]

Folder.GetSpecialFolder SpecialFolder: Folder.SpecialFolder.Personal SpecialFolderPath=> SpecialFolderPath
Display.SelectFile Title: $'''名前を付けて保存''' InitialDirectory: SpecialFolderPath FileFilter: $'''*.xlsx''' IsTopMost: False CheckIfFileExists: False SelectedFile=> SelectedFile ButtonPressed=> ButtonPressed
IF SelectedFile.IsEmpty = $'''False''' THEN
    Excel.Launch Visible: True LoadAddInsAndMacros: False Instance=> ExcelInstance
    LOOP LoopIndex FROM 1 TO 5 STEP 1
        Excel.WriteCell Instance: ExcelInstance Value: LoopIndex Column: LoopIndex Row: 1
    END
    Excel.CloseAndSaveAs Instance: ExcelInstance DocumentFormat: Excel.ExcelFormat.OpenXmlWorkbook DocumentPath: SelectedFile
END

コメント