待望の Copy 関数が Power Apps に実装されました!素晴らしい!
ってことで「例のアプリ」に機能を追加したぞ、というネタです。
Copy 関数 公式情報
下記のリンクを確認ください。
非常に簡単な構文です。
Copy( text )
text の箇所にテキスト(文字)を指定すればクリップボードへコピーしてくれます。
参考情報
ヨウセイ さんの記事がわかりやすいので、詳細はそちらをご確認ください。
From コントロールや、ギャラリーからのコピー処理も解説されています。公式に記載されている例が少なすぎるので、記事を読んで実際に検証アプリを作って動きを確認するのが良いかなーと個人的には思います。
参考情報 その2
念のため、記事投稿(2023年5月3日)時点の環境情報です。
作成バージョン 「3.23044.12」です。
例のアプリに機能追加する!
さて、例のアプリにコピー機能を追加していきましょう!
例のアプリ、とは?
「予定の候補日メーカー」です。
Power Apps のカレンダースクリーンをチョッと改造して、予定の候補日時を作成する補助ツールです。以前から、このアプリにコピー機能を実装したかったのですが、昔は Copy 関数なんて無かったんですよ。
それが!
ついに!!
キタ――(゚∀゚)――!!!
機能追加後の画面
作成した予定の候補をコピーするだけ、ですからね。ボタン1個置いて、チョッと動作と制御の関数追加するだけッ。
動作イメージは、Copy ボタンの上にある予定の候補日時をコピーする、ただソレだけです。
Copy ボタンの関数
OnSelect に下記を設定しています。
Copy( Concat( 予定の候補日時ギャラリー.AllItems, $"{ギャラリーで表示しているラベル.Text}{Char(10)}" ));
Copy 関数は冒頭で紹介しておりますので公式情報は割愛。
Concat 関数を利用すると配列やテーブルを1つの文字列へ変換可能です。
過去、こんな記事を書いてますので、こちらも是非ご参照ください。
「Char(10) って何やねん?」と思った方は、下記の記事が参考になると思います。
改行コードですね。Windows は CRLF が多いのですが、LF のみでも当方の利用範囲では問題ないため上記のような関数になっています。アプリを利用する環境によって改行コードが異なる可能性があります。なので、実際に利用する端末・環境などで動作確認は必須かな、と個人的には考える次第です。
動作イメージ
ボタン1発でコピーされてメッチャ便利。ちゃんと Win+v のクリップボード履歴にも保持されています。
#PowerApps Copy 関数 pic.twitter.com/PnfFMNkI55
— やま (Yama) (@yamad365) May 3, 2023
これで、イチイチ範囲指定してコピペしていた操作が、ボタン押すだけでコピーされるようになって非常に満足です👍
結び
Copy 関数、マジ待ってました。
- Copy 関数が受け取れるのは現状テキスト(文字列)のみ
- ギャラリーやテーブル、配列のデータはテキスト化必須
- (試した限りでは)改行コードは LF(Char(10))のみで張り付け時に改行されるので個人的にはコレで OK
- 改行コードは環境やアプリ依存な場面が多いのでシーンにあわせてテスト必須な認識
- Copy 関数の結果は、ちゃんと Win+v のクリップボード履歴にも保持される
- iPhone の Power Apps アプリでもちゃんと Copy 関数は動いた
また1つ、Power Apps の世界が広がりましたわ!
それでは、皆さま。素晴らしい Power Platform Life を!