【PowerApps】ボタンをコンポーネント化して実装する


PowerAppsでボタンをコンポーネント化して実装していきたいと思います。

## コンポートライブラリを作成する

PowerAppsを開いてコンポートライブラリを作成していきます。

以下画像の手順で、コンポートライブラリを作成してください。

![スクリーンショット 2023-08-02 150752.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/b5bcc55b-dbfc-0762-bfe1-2428548a3607.png)


## ボタンを作成する

#### 🔷ボタンの追加

①コンポーネント名を付けておくと分かりやすいので、最初に命名しておくことを推奨します。
　今回は[ButtonComponent]という名前にしました。

②、③の順番で、ボタンを[ButtonComponent]に追加してください。

![スクリーンショット 2023-08-02 152204.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/1f180767-abc7-124a-3bcf-66e4d0fec922.png)

#### 🔷ボタンのトリミング

ボタンの背景をトリミングして、[ButtonComponent]の要素をボタンのみにしていきます。

①ボタンを選択して、左上に移動させます。
②ボタンのサイズが右側に表示されていると思うので、確認してください。

![スクリーンショット 2023-08-02 153146.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/4347b115-4e92-b944-079c-5d59a20b015f.png)

①[ButtonComponent]のプロパティに先ほど確認したボタンのサイズを入力すると、画面がボタンの形にトリミングされます。

![スクリーンショット 2023-08-02 154153.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/aafaacd9-f963-ab33-a742-1868883095a3.png)

初期設定でふちが丸くなっているのを解除するには、ボタンを選択し、プロパティから境界半径を10から0に変更してください。

#### 🔷 ボタンコンポーネントの設定

コンポーネント化したボタンのプロパティを設定をしていきます。

##### ～ボタンのテキストを変更するプロパティを追加する～

①[ButtonComponent]から、`＋新しいカスタムプロパティ`を押下して、プロパティの設定を行います。

　表示名・名前：分かりやすい名前を命名してください
　プロパティの型：入力
　データ型：テキスト

![スクリーンショット 2023-08-02 163628.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/a3c119ad-dea5-c903-2299-f89ac2b79ed6.png)

②でカスタムプロパティを作成したら、ボタンを選択します。
![スクリーンショット 2023-08-02 164646.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/2dc1aef6-6da9-4dd6-d199-75c3bb4ed0df.png)

ボタンプロパティで[Text]を選択し、値に[ButtonComponent.**ButtonText**]　*太字部分は先ほど作成したカスタムプロパティ名を指定します。

##### ～ボタン押下時の処理を指定するプロパティを追加する～

ボタン押下時の処理を指定するプロパティの追加については事前にアプリの設定が必要となります。

以下画像の手順で設定画面を開き、**拡張コンポーネントのプロパティ**をオンにしてください。

![スクリーンショット 2023-08-02 165543.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/da50ffce-5b46-16b4-a7bc-a24d600df66a.png)

事前準備はこれでOKです。

ボタンのテキストを変更するプロパティを追加した時と同じように、`＋新しいカスタムプロパティ`を押下してカスタムプロパティを追加していきます。

**拡張コンポーネントのプロパティ**をオンにしたことにより、[プロパティの型]から入力、出力の選択肢が消え、新しく4つの項目が追加されました。

　表示名・名前：分かりやすい名前を命名してください
　プロパティの型：イベント
　データ型：イベントプロパティの場合、データ型は関係ないのでどれを選んでもOK(なはず)

![スクリーンショット 2023-08-02 170808.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/ee9eb644-a694-bc11-c128-96b4bad539e9.png)

カスタムプロパティが作成できたら、ボタンを選択します。

ボタンプロパティで[OnSelect]を選択し、値に[ButtonComponent.**ButtonOnSelect**()]　*太字部分は先ほど作成したカスタムプロパティ名を指定します。

![スクリーンショット 2023-08-02 171650.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/bdac3d0a-b260-e86f-8e43-a45fa857c762.png)

これでコンポーネントの設定は完了です。

見た目の設定などはお好みで行ってください。

最後に、【上書き保存】をして、【公開】してください。

※公開を実施しないとアプリ側でうまく反映されなかったりします。

## コンポーネント化したボタンを実装する

それでは、アプリからコンポーネント化したボタンを呼び出して実装してみます。

以下の手順で作成したコンポーネントを選択し、インポートします。

![スクリーンショット 2023-08-02 172603.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/ee029230-f67a-906b-0d6f-234c9a96f79d.png)

`＋挿入`から、ライブラリコンポーネントを展開し、インポートしたButtonComponentをクリックすると、画面にボタンが追加されました！

![スクリーンショット 2023-08-02 173209.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/e662713b-0bda-9c40-22ea-9a31d1c8c7f1.png)


上で設定したカスタムプロパティを使用して、ボタンのテキストを変更してみます。

![スクリーンショット 2023-08-02 174009.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/75bf6610-f204-4230-27bb-a77b0d232b36.png)

先ほどの～ボタンのテキストを変更するプロパティを追加する～で作成した`ButtonText`プロパティを選び、値を"テキスト"から"click"に変更しました。

きちんとボタンのテキストが変更されましたね。


続いて、～ボタン押下時の処理を指定するプロパティを追加する～で作成した`ButtonOnSelect`プロパティで押下時の処理を書いてみましょう。

`ButtonOnSelect`プロパティを選択し、Navigate関数を使用して、成功画面に遷移する処理を記述しました。

![スクリーンショット 2023-08-02 175256.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/262e1e68-fe19-3ba8-5e06-bb6f45bee190.png)

画面右上の▷アプリのプレビューボタンをクリックして、きちんと動くか確かめてみます。

![スクリーンショット 2023-08-02 175759.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/f668a8d1-bde2-2fc4-c169-e827fce1ba43.png)

ボタンをクリックしてみると……
![スクリーンショット 2023-08-02 175950.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3069823/432c4130-78f9-6e51-8c61-423ce03d0b5c.png)

この通り、成功画面に遷移することができました！！


## おわりに

今回はPowerAppsでボタンをコンポーネント化して実装してみました！

読んでいただきありがとうございました。
お役に立てれば幸いです。