はじめに
この記事では、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のファイル名をユーザが指定できるようになります。

では早速フローを作成していきます。
※このフローは、前回紹介した「Power Automate DesktopでExcelの操作を自動化する方法[#1]」で作成した【 Excelの起動からデータを書き込み保存して終了 】フローを変更していきます。
アクションの【 フォルダー 】から【 特別なフォルダーを取得 】を【 Excelの起動 】の前に追加します。
※ここで【 特別なフォルダーを取得 】を追加するのは、汎用的に保存先フォルダーを指定するために、ドキュメントパスを取得するために追加を行っています。

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

次に【 メッセージボックス 】の【 ファイルの選択ダイアログを表示 】を先ほど追加した【 特殊なフォルダーを取得 】の後ろに追加します。
※ここで【 ファイルの選択ダイアログを表示 】を追加するのは、保存名を入力するウィンドウを表示させるためです。

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

【 ファイルの選択ダイアログを表示 】パラメーターの【 ファイルフィルター 】には【 *.xlsx 】と入力し【 保存 】をクリックします。
※ここで【 *.xlsx 】を指定するのは、保存するExcelの拡張子をするためです。
また、複数の拡張子を入力する場合は【 *.xlsx;*.xls 】と拡張子の間に【 ;(セミコロン) 】を追加します。

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

【 If 】パラメーターの【 最初のオペランド 】に【 ファイルの選択ダイアログを表示 】で生成された【 SelectedFile 】変数の【 .IsEmpty 】を選択します。
※ここで【 .IsEmpty 】を指定するのは、入力された値が【 SelectedFile 】変数に有る場合は【 True 】を返し、無い場合は【 False 】と判定できるので【 .IsEmpty 】を設定しています。

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

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

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

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

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

【 保存する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
コメント