コピーしたデータを変数に保存する

PowerAutomateDesktop

コピーしたデータを変数に保存する方法を紹介します。

Power Automate Desktop(PAD)では、Webページやアプリケーションなどでコピーしたデータを、フロー内の変数で利用できます。

通常、データを「Ctrl+C」でコピーすると、その内容はWindowsのクリップボードに保存されます。

PADでは、このクリップボードに保存されたテキストを「クリップボード テキストを取得」アクションで取得できます。

取得したデータは変数に格納されるため、その後の処理で文字列を確認したり、別の場所へ入力したり、条件分岐やデータ加工に利用したりできます。

1.データをコピーする

まず、取得したい文字列を選択します。

Webページやアプリケーション上の文字をマウスで選択したあと、「キーの送信」アクションを使って、「Ctrl + C」を送信します。

PADの「キーの送信」アクションでは、キーボードショートカットを送信できます。

処理のイメージは、

データを選択
↓
Ctrl+C
↓
クリップボードに保存

となります。

この時点では、まだPADの変数には入っていません。
コピーしたデータは、Windowsのクリップボードに保存されています。

2.「クリップボードテキストを取得」アクションを追加する

次に、「クリップボード テキストを取得」アクションを追加します。

このアクションを実行すると、クリップボードに保存されているテキストを取得できます。

「クリップボード テキストを取得」には設定項目がなく、実行すると「ClipboardText」というテキスト値の変数が生成されます。

取得した文字列は「%ClipboardText%」として、後続のアクションから利用できます。

3.取得した変数を利用する

クリップボードから取得したデータは、通常のテキスト変数と同じように利用できます。

例えば、取得した文字列を別の入力欄へ入力したり、条件分岐で内容を確認したりできます。

また、文字列の置換や分割など、テキストを加工する処理につなげることもできます。

「画面に表示されている文字を取得する」というだけでなく、

画面上のデータをPADの処理対象にする

ための入り口として考えると分かりやすいです。

クリップボードを一度クリアする

コピーする前に、「クリップボードの内容をクリア」アクションを実行する方法があります。

これには、前回コピーしたデータを誤って取得することを防ぐ目的があります。

例えば前回の処理で、「商品A」をコピーしていたとします。

その後、今回のコピー操作がうまくいかなかったにもかかわらず、クリップボードからデータを取得すると、古い商品Aを取得してしまう可能性があります。

そこで、コピー処理の前にクリップボードをクリアしておきます。

クリップボードの内容をクリア
↓
データを選択
↓
Ctrl+C
↓
クリップボード テキストを取得

こうしておけば、コピーが正常に行われたかどうかを確認しやすくなります。

コピーが完了するまで待つ

コピーするデータによっては、クリップボードへの保存に時間がかかることがあります。

特に、Webページや別のアプリケーションからデータを取得する処理では、コピー操作とデータ取得のタイミングがずれることがあります。

単純な「待機」アクションを入れる方法もありますが、毎回同じ時間を待つ必要があります。

そこで、以下のようにコピーしたデータが取得できるまで繰り返す方法があります。

値「”」のアクション内での設定値は「%”%」

1.クリップボードの内容をクリア
クリップボードに保存されている内容を削除することで、想定外のデータ取得を防ぎます。

2.変数の設定
ループ処理などを使用する場合は必ず設定します。

「ループ条件」の条件を【クリップボードから取得する変数が空白であること】としているので、条件に一致するよう「ClipboardText」を空白にしておきます。

3.キーの送信
「Ctrl+C」を設定し、コピーを行います。

4.ループ条件 【ClipboardText が 空白 と等しい】
クリップボードから取得する変数「ClipboardText」が空白と等しい間ループを行います。
空白でなくなった場合はループを抜けます。

「ClipboardText」にデータが入る(コピーしたデータが取得できる)までループを繰り返すという意味です。

データが変数に保存されるまでクリップボードからデータを取得し続けるので、クリップボードへの保存に時間が掛かった場合も対応することができます。

※コピー操作自体が上手く出来ていなかったら無限ループになります。

5.クリップボードテキストを取得
ループの間に「クリップボードテキストを取得」を設定することで、取得できるまでアクションを実行します。

この方法なら、クリップボードへの保存に少し時間がかかった場合でも、データが取得できるまで待つことができます。

ループを使って取得する方法には注意点があります。

コピー自体が失敗している場合、いつまでもデータが取得できない可能性があります。

例えば、選択範囲が正しく設定されていなかったり、対象の画面がアクティブになっていなかったりすると、Ctrl+Cを送信しても期待したデータがコピーされません。

その状態で、

「ClipboardTextが空なら繰り返す」

という条件だけにすると、ループが終了しなくなる可能性があります。

そのため、実際のフローでは、

  • 最大試行回数を設定する
  • 一定時間で処理を終了する
  • コピー対象が正しく選択されているか確認する

といった対策も検討すると安全です。

取得したデータが正しいか確認する

コピーしたデータを後続処理に利用する場合は、取得した内容が想定どおりか確認しておくと安心です。

取得したClipboardTextをメッセージボックスなどで表示すると、コピーした文字列が正しく入っているか簡単に確認できます。

修正したいときは、

Ctrl+C
↓
クリップボード テキストを取得
↓
ClipboardTextを表示

というフローを作ると、問題がどこで発生しているのか確認しやすくなります。

「コピーできていない」のか、

「コピーはできているが取得できていない」のか、

を分けて考えることが重要です。

また、コピーするデータの最初の文字やデータ形式が決められている場合は、「If」などのアクションでデータが決められた形と一致するかを判定することで、誤った動作を防ぐことが可能です。

使用するメリット

クリップボードを利用したデータ取得は、UI要素から直接データを取得するのが難しい場面でも使えることがあります。

例えば、

  • Webページ上の文字を取得したい
  • Windowsアプリの表示内容を取得したい
  • 表形式のデータをまとめて取得したい
  • コピーした文字列を別の処理に利用したい
  • 取得したデータを変数として加工したい

といった処理です。

また、この方法の大きなメリットは、取得した文字列をPADの後続処理でそのまま利用できることです。

画面からコピーしたデータを単に別の場所へ貼り付けるだけでなく、変数に保存しておけば、

  • 条件を確認する
  • 文字列を置換する
  • 必要な部分だけ取り出す
  • ファイルへ書き込む
  • Excelなどへ入力する
  • データテーブルへ変換する

といった処理につなげられます。

そのため、「コピーする」という操作を単独で考えるのではなく、コピーしたデータをPADで再利用するための方法として覚えておくと便利です。

コピーしたデータをPAD上で使用したい場面がでてきたら試してみてください。

タイトルとURLをコピーしました