Power Automate for Desktop ウィンドウを画面中央に移動する

Power Automate for Desktopで操作するウィンドウを監視するために画面中央に配置しておくと便利です。そんなフローを作ってみました。

フローの概要は次の通りです。

1. 「画面の解像度を取得する」アクションでモニターの幅と高さを取得します。

ここではモニターに1を指定しています。モニターが複数ある場合は適宜指定する必要があると思います。

変数名はデフォルトの、MonitorWidth と MonitorHeight。(使わない変数はオフにしておいた方が変数ペインがすっきりするし、誤って使う事も少なくなるでしょう)


2. 「ウィンドウの詳細を取得する」アクションで、ウィンドウの場所とサイズを取得します。この例では「メモ帳」のウィンドウを指定しています。

変数名はデフォルトの WindowProperty

WindowProperty には 503, 843, 1060, 802 のように、ウィンドウ左上の X 値、Y値、ウィンドウの幅、ウィンドウの高さが CSV 形式で保存されます。

詳細については次のページを参考にするとよいでしょう。

ウィンドウの位置とサイズを取得する

ウィンドウ指定の際に、うまく指定できず、ウィンドウ内の別の要素を取得してしまった場合は、ウィンドウを選択し直します。


3. 「テキストの分割」アクションを使って WindowProperty をリストに変換します。

変数名はデフォルトの TextList


4. 「テキストを数値に変換」アクションを使って、ウィンドウ幅を取り出します。

式は %TextList[2]% 、変数名は uWindowWidth 。(私はユーザー定義変数は頭にuをつけて区別しています。また、将来変数が追加されたときの衝突回避も多少期待しています)


5. 同様にウィンドウ高さを取り出します。

式は %TextList[3] % 、変数名は uWindowHeight 。


6. 「数値の切り捨て」アクションを使って、ウィンドウ移動先の、ウィンドウの左上座標のX値を計算します。

式は  %MonitorWidth / 2 - uWindowWidth / 2% 、変数名は X 。

計算式は次の図を参考にしてください。


7. 同様にY値を求めます。

式は %MonitorHeight / 2 - uWindowHeight / 2% 、変数名は Y 。


8. 「ウィンドウの移動」アクションを使って、ウィンドウ左上の位置を X, Y 変数を使って指定します。


追記:

公開当初は、%MonitorHeight / 2 - uWindowHeight / 2%を直接 X値に指定していましたが、端数が出るとエラーになることが分かったので、整数に丸める処理を追加しました。

%TextList[2]%は、テキスト型だと思いますが、直接X値の計算式に指定してもエラーは出ません。

%'0023'%を指定した変数 NewVar を%NewVar / 2 % のように指定すると、%'0023' / 2% ではなく、 %0023 / 2% のように置換されるのでしょう。その結果数値として処理されるという事だと思います。

そのため、「テキストを数値に変換」は「変数の設定」アクションを使っても問題はありませんでした。

なお、%NewVar + 'A'% のように文字列と連結すると、結果は 0024A となり、NewVarは文字列として扱われます。

Excel マクロを呼び出すときの引数も予め値を "" で囲っておかないと数値扱いされます。

Power Automate for Deskotp: Excelマクロ実行時に文字列を引数として渡す



コメント

アクセス数の多い投稿

セキュリティ対策ソフトのノートンが詐欺ソフトまがいになってしまってショック

ZIPファイルを開こうとすると、展開を完了できません、と言われる

Excel 2019 クエリが原因で日本語入力の一文字目が勝手に確定する

Excelのテーブルに行や列を挿入する際のエラー

オカムラ家具のOAチェアー、コンテッサを分解清掃

突然滅茶苦茶遅くなったPCがWindows Updateのキャッシュクリアで復活

ChatGPTが日本語からVBAのコードを生成できてたまげる

Windows セキュリティーのビックリマークが消えない

Power Automate Desktopでブラウザでダウンロードしたファイルを処理する

Excel VBAからODBCを使ってデータを簡単に取得する