前回紹介したクラウドフローの開発方法に引き続き、デスクトップ上の操作を自動化するRPA「Power Automate Desktop」で“デスクトップフロー”の開発方法を紹介します。
目次
デスクトップフロー
デスクトップフローの実行・開発には環境の構築のためインストール作業が必要となります。以下を参考に準備を整えましょう。今回作成するフローの内容は以下のステップです。
Edgeを起動する。
↓
GMOインターネットの株価を表示
↓
GMOインターネットの株価の値を取得する
↓
Edgeを終了する
↓
Excelを起動してファイルを開く
↓
取得したGMOインターネットの株価を追記する
↓
Excelファイルを保存して閉じる
インターネットから取得した情報をExcelに保存するといったよくある作業を自動化してみましょう。Microsoft365のポータルサイトにログインし、「Power Automate」を選択します。

「作成」-「デスクトップフロー」を選択します。

“DF01”というフォロー名で「アプリの起動」を選択します。

これがPower Automate Desktopのフロー開発画面です。
1つ目の開発方法としては、左メニューからアクションをその都度選択して並べてゆくマニュアル作成方法。2つ目はブラウザ内の操作をそのままビデオのように記録して自動的にフローに変換する「Webレコーダー」、3つ目はデスクトップ上の操作を記録して自動的にフローに変換する「デスクトップレコーダー」が用意されています。「Webレコーダー」「デスクトップレコーダー」で記録されたフローは組み合わせたり、後からアクションメニューを使って修正が可能です。

Webレコーダー
まずは、「Webレコーダー」を使って目的のWebサイトから情報を取得するところまでのフローを作成します。

操作記録対象となるブラウザを選択します。今回は「Microsoft Edge」を選択します。この時の注意点としては、操作記録するブラウザは事前にすべて閉じておく必要があります。
また、ブラウザの拡張機能として「Microsoft Power Automate」がインストールされていること確認してください。「次へ」ボタンを選択します。

Edgeが起動して、Webレコーダーのコントローラーが表示されます。
「記録の開始」を選択します。
ブラウザの操作の邪魔になるので、Webレコーダーのコントローラーは最小化しておきます。

GMOインターネットのグループ株価情報のページ(https://ir.gmo.jp/)を表示して、ページ下部のGMOインターネットの株価の値にカーソルを合わせます。赤い四角の表示で該当タブ(<span>)が表示されますので、ここでマウスを右クリックします。
「要素の値を抽出」-「テキスト(**,***.**)」を選択します。

このタイミングでWebレコーダーのコントローラーを表示して「終了」ボタンを選択します。(ブラウザを閉じても終了の操作は記録されません。後程手動で追加します)。

Webレコーダーで作成されたフローを確認します。「コメント」は操作に関するメモのようなもので削除しても動作に影響はありません。
「Webページ上の要素の詳細を取得します」を選択すると、右側の変数メニューに「AttributeValue」と「Browser」という2つの変数が確認できます。
「innertext」にはGMOインターネットの株価が格納されることになります。この変数は後程Excelに転記する際に利用します。「Browser」には起動したEdge本体が格納されています。こちらは次に追加する「ブラウザを閉じる」アクションで利用します。

株価を取得後はブラウザを閉じる処理が必要となります。Webレコーダーではこの操作が記録できていませんので追加します。左のアクションメニューから、「Webブラウザーウィンドウを閉じる」を選択して、「Webページ上の要素の詳細を取得します」の下にドラッグ&ドロップで追加します。

「Webブラウザーインタンス」にはすでに直前のアクションから引き継いだ変数“%Brouwser%”(変数は”%”で囲んで使用します)が設定されています。
こちらの内容で保存します。

ここまででき上がったところで、保存ボタンで保存しておきます。隣の実行ボタンでここまでのフロー動きを確認しておきましょう。実行の際はEdgeブラウザがすべて終了していることを確認した上でテストを行います。

実行すると自動的にEdgeが起動して、GMOインターネットのグループ株価情報のページを開きます。自動的にEdgeは閉じられてフローが終了します。
実行後のフローで、変数を確認するとGMOインターネットの株価が取得できていることが確認できます。

Excel操作の自動化
ここまでで、Webブラウザのフォローが完成しました。続いて、Excelを起動して取得した日経平均株価を転記する部分を作成してゆきます。
事前に操作対象となるExcelファイルを以下の内容で作成してドキュメントフォルダーに保存しておきます。各列の書式もあらかじめ整えておきましょう。

左のアクションメニューから「Excelの起動」を選択して、フローの最後に追加します。

「Excelの起動」で“次のドキュメントを開く”を選択します。「ドキュメントパス」には先ほど保存したExcelファイルを指定します。
こちらの内容で保存します。

次に、アクションメニューから「Excelワークシートから最初の空の列や行を取得」をフローの最後に追加します。

「Excelインスタンス」には直前のアクションから引き継いだExcelインスタンスを格納した変数がすでに設定されています。
「生成された変数」はフローを実行した際に、Excelシートの空白セル情報として、列と行番号が格納される変数となります。
こちらの内容で保存します。

最初の実行時には、変数「FirstFreeColumn」には最初の空白列番号“3”(C列)、変数「FirstFreeRow」には最初の空白行番号“2”が格納されることになります。
したがって、カーソルのある「C2」のセルが最初の空白セルとなります。

日付の列には実行時の日付を入力するので、日付取得のアクションを追加します。
アクションメニューから「現在の日付を取得」を追加します。

現在の日付は「CurrentDateTime」という変数に格納されます。
こちらの内容で保存します。

Excelに各値を入力してゆきます。アクションメニューから「Excelワークシートに書き込み」を追加ます。

まずは日付の列に取得した現在の日付を入力します。ワークートに書き込む際のパラメーターはこれまでのアクションで取得た変数となります。
日付列は常に1(A列)となります。行は最初に見つかった空白セルの行番号となります。
こちらの内容で保存します。

続いて取得した日経平均株価を入力します。同様にアクションメニューから「Excelワークシートに書き込み」を追加ます。
株価の列は2(B列)となります。行は最初に見つかった空白セルの行番号となります。
こちらの内容で保存します。

最後に「Excelを閉じる」アクションを追加します。

「Excelを閉じる前」では“ドキュメントを保存”を選択します。
こちらの内容で保存します。

デスクトップフローのテスト
テストをする際や実際に実行する際に気を付ける点があります。ブラウザを呼び出してのアクションを実行する場合は、事前に対象となる(EdgeやChromeなどフロー内で呼び出すブラウザ)すべてのブラウザを終了した状態で実行する必要があります。(今回はEdgeをすべて終了してから実行)すでに起動済みのブラウザがある場合、デスクトップフローがエラーとなる場合があります。
では、すべてのフローを実行してみましょう。このような結果となっていれば成功です!
翌日以降は最後の行に順次追加されていくことになります。

以上、Power Automate Desktopによるデスクトップフローの開発方法を紹介しました。
「Webレコーダー」や「デスクトップレコーダー」など自動的にフローを作成してくれる便利機能もあり、細かいところは自分でアクションを追加して修正変更など手軽にできるなど使い勝手も良好です。
さらには、フローの開発は難しい開発言語を駆使するのではなく、日本語で記載されているアクションをブロックのように組み立てるといった点も開発のハードルを下げるのに一役買っています。
慣れてくれば今回のサンプル程度のフローであれば15分もかからず開発が可能です。
次回はクラウドフローとデスクトップフローを組み合わせて、さらに便利に利用できるハイブリッドフローの開発方法を紹介します。
著書の紹介欄
Hyper-Vで本格的なサーバー仮想環境を構築。仮想環境を設定・操作できる!
できるPRO Windows Server 2016 Hyper-V
◇Hyper-Vのさまざまな機能がわかる ◇インストールからの操作手順を解説 ◇チェックポイントやレプリカも活用できる Windows Server 2016 Hyper-Vは、仮想化ソフトウェア基盤を提供する機能であり、クラウドの実現に不可欠のものです。 本書では、仮想化の基礎知識から、Hyper-Vでの仮想マシンや仮想スイッチの設定・操作、プライベートクラウドの構築、Azureとの連携などを解説します。

初めてのWindows Azure Pack本が発売
Windows Azure Pack プライベートクラウド構築ガイド
本書は、Windows Azure PackとHyper-Vを利用し、企業内IaaS(仮想マシン提供サービス)を構成するための、IT管理者に向けた手引書です。試用したサーバーは、最小限度の物理サーバーと仮想マシンで構成しています。Windows Azure Packに必要なコンポーネントのダウンロード、実際にプライベートクラウド構築する過程を、手順を追って解説しています。これからプライベートクラウドの構築を検討するうえで、作業負担の軽減に役立つ一冊です。

ブログの著者欄
採用情報
関連記事
KEYWORD
CATEGORY
-
技術情報(458)
-
イベント(164)
-
カルチャー(38)
-
デザイン(21)
TAG
- 5G
- Adam byGMO
- AI
- AWX
- BIT VALLEY
- blockchain
- ChatGPT
- cloudflare
- cloudnative
- CloudStack
- CM
- CNDO
- CNDT
- CODEGYM Academy
- ConoHa
- CS
- CSS
- CTF
- DC
- Designship
- Desiner
- DeveloperExpert
- DevSecOpsThon
- DNS
- Docker
- DTF
- GitLab
- GMO Developers Day
- GMO Developers Night
- GMO GPUクラウド
- GMO Hacking Night
- GMO kitaQ
- GMO SONIC
- GMOアドパートナーズ
- GMOアドマーケティング
- GMOイエラエ
- GMOグローバルサイン
- GMOソリューションパートナー
- GMOデジキッズ
- GMOブランドセキュリティ
- GMOペイメントゲートウェイ
- GMOペパボ
- GMOリサーチ
- Go
- GTB
- Hardning
- Harvester
- HCI
- iOS
- IoT
- ISUCON
- JapanDrone
- Java
- JJUG
- K8s
- Kaigi on Rails
- Kids VALLEY
- LLM
- MetaMask
- MySQL
- NFT
- NVIDIA
- OpenStack
- Perl
- perplexity
- PHP
- PHPcon
- PHPerKaigi
- PHPカンファレンス
- QUIC
- Rancher
- RPA
- Ruby
- Selenium
- Spectrum Tokyo Meetup
- splunk
- SRE
- SSL
- Terraform
- TLS
- TypeScript
- UI/UX
- VLAN
- VS Code
- アドベントカレンダー
- インターンシップ
- オブジェクト指向
- オンボーディング
- お名前.com
- カルチャー
- コンテナ
- スクラム
- スペシャリスト
- セキュリティ
- ソフトウェアテスト
- チームビルディング
- ドローン
- ネットワーク
- プログラミング教育
- ブロックチェーン
- マルチプレイ
- ミドルウェア
- モバイル
- ゆめみらいワーク
- リモートワーク
- レンタルサーバー
- 京大ミートアップ
- 協賛レポート
- 基礎
- 多拠点開発
- 大学授業
- 宮崎オフィス
- 応用
- 技育プロジェクト
- 新卒
- 暗号
- 機械学習
- 決済
PICKUP