
コピーしたデータを変数に保存する方法を紹介します。
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上で使用したい場面がでてきたら試してみてください。


