Power PlatformとAppSheetのアレコレ蓄積ブログ

【Power Apps】Power Appsの使い方<#000>

アプリを作成していくときの基本的な使い方や、自分が分からなくて調べたことなどを思いついたまま殴り書きしていきます。

なお、本サイトで紹介しているものは全てMicrosoft 365 Business Standard(Office365 E3)のライセンス内で使用できるものです。(こちらのライセンスをお持ちであれば追加費用無し)

01-Power Appsとは何なのか?

Power Appsって何?という問いに対しては、ギークフジワラさんのこちらの動画が簡潔で分かりやすいです。5分程度の動画なのですぐ終わります。

02-SharePointからアプリを作る手順

SharePoint

SharePointでデータベース用のサイトを作成する

SharePointページで[サイトの作成]、[チームサイト]と進みます

各項目をセットします
組織内で命名ルールがある場合はそちらに従います

追加したいメンバーを追加し、[完了]をクリックします

これで新規のサイトが作成出来ました。次にリスト(テーブル)を作成します。

作成したサイトでリストを作成する

続いて実際のデータを蓄積するリスト(テーブル)を作成します。

[新規]⇒[リスト]をクリックします

[空白のリスト]をクリックします

Excelやcsvからも作成できますが、今回は新しくリストを作ってみます。

[名前]と[説明]を入力し、[作成]をクリックします

[タイトル]⇒[列の設定]⇒[名前の変更]をクリックします
ここからは列を設定していきます

列名を任意の値に変更します

[列の追加]⇒[テキスト]を選択し[次へ]をクリックします

型をここで設定するわけですね。

各項目を入力・選択します

抑えておく項目
項目名内容
名前同じ列名にならないよう設定
種類選択肢や添付ファイル・画像等も選択可能
最大文字数文字数制御をしたい場合に任意の数値を設定
この列に含まれている必要があります入力必須項目にするかどうか
一意の値を適用重複したデータが入らないようにしたいかどうか

[列の追加]⇒[日付と時刻]⇒[次へ]をクリックします

次回点検日も作ってみます。

各項目をセットします

列の順番を入れ替えてみます

[すべてのアイテム]⇒[ビューに名前をつけて保存]をクリックします

使いやすくするために「ビュー」という単位で保存しておきます。

ビューの名前を入力し、[保存]をクリックします

テストデータを入れておきます
[グリッドビューでの編集]をクリックし、任意のデータを入れておきます
入力完了後、[グリッドビューの終了]をクリックします

リストを元にPower Appsアプリ作成

[統合]⇒[Power Apps]⇒[アプリの作成]をクリックします
任意のアプリ名を入力し、[作成]をクリックします

Power Appsの画面が立ち上がります

以上で、SharePointリストからアプリを作成する手順は終了です。台帳メンテのみの機能であれば、これでとりあえず動きます。

03-アプリを動かしてみる方法

上記のSharePointから作成したアプリを動かしてみます。アプリの動作チェックは簡単です。

方法1.実行ボタン

再生ボタンをクリックします

項目をクリックしたり、+ボタンで追加したりすることが出来ます

終了する場合は右上の[×]をクリックします(ブラウザの[×]ではありません)

方法2.Altキーを押しながらクリック

キーボードのAltキーを押しながらクリックすると、開発画面上で動作チェックが出来ます。

普通にクリックした動き

項目が選択される

Altキーを押しながらクリックする動き

実行画面でクリックしたのと同じ動きになる

04-アプリを公開する(みんなが使えるようにする)

アプリは作成しただでは、他の方に使ってもらうことはできません。

大まかに、公開&共有という作業が必要です。

手順などはこちらのサイトが分かりやすいです。

05-スマホでPower Appsを動かす手順

作成したアプリをスマホで動かす為には、Power Appsアプリをスマホにインストールする必要があります。公式サイトを参考にスマホアプリをインストールしてみてください。

06-SharePoint画像列に画像が登録できない(反映されない)件

写真記録アプリを作っていて、少しはまったので共有です。

事象

SharePointに画像列を追加していて、キャンバスアプリで設置し、テストしたら画像の登録が出来ない。

原因と解決策:画像列の名前を全角で作成している為

画像列の名前を半角英数字にすれば解決するようです。ただ、1度全角で作成してしまった列を半角に変更しただけでは解決しません。列を削除し、新たに半角の列を追加します。

あれ、image1は反映されたんですが、image2が反映されない。。。これについては、次の章で。

07-SharePointリストにデータが反映されない件

上記の「image2が反映されない」の続きですが、リスト等をメンテナンスしていると、ブラウザにキャッシュ(履歴のようなもの)が残り、うまく反映されないことがあるようです。

上記例では、image2という列を間違えてテキストで作成してしまったので、1度削除し画像列として新たに追加した という作業をしました。

テキストで作成したimage2という情報が残ってしまって、表示上うまく反映されていなかったようです。

解決策としては、キャッシュをクリアすれば大丈夫です。ブラウザにより手順が違います。

08-Power AppsとSharePointサイトの日時データの取扱い

Power Appsで日時データを扱っている際に、日時が合わない場合があります。その時は、SharePointサイトのタイムゾーンが日本時間になっているか、下記の手順で確認します。

データソースを指定しているサイトにて、[設定]⇒[サイト情報]をクリックします

[すべてのサイト設定を表示]をクリックします

[地域の設定]をクリックします

[タイムゾーン]の設定を[大阪、札幌、東京]に変更し[OK]をクリックします

これでリストで使用している日時と、Power Apps画面で表示される日時データが正しく日本時間になると思います。

09-データカードの追加

キャンバス上にある項目をコピペして使うことはあると思いますが、データカードはコピー表示がありません。

[コピー]が無い

データカードは以下手順で追加します。

フォームを選択し[フィールドの編集]⇒[フィールドの追加]をクリックします

追加したい項目にチェックを付けて[追加]をクリックします

これでデータカードを追加できます。

10-2つの日時の差異を自動計算する

開始日時と終了日時を入力することで、<終了日時-開始日時>の計算結果を<合計時間>に自動反映させる方法です。

合計時間の項目の[Default]に下記関数を入力

コピーしました!

Defaultに入力する関数
DateDiff(
    DateValue1 & " " & Time(HourValue1.Selected.Value, MinuteValue1.Selected.Value, 00),
    DateValue2 & " " & Time(HourValue2.Selected.Value, MinuteValue2.Selected.Value, 00),
    TimeUnit.Hours) // -> (時間)

DateDiff関数で2つの日時差を求めることが出来ます。今回は入力項目が、日付と時間で分かれている為、引数にセットする際に結合しています。また、3つ目の引数で「時間」を算出するよう指定しています。

こちらのサイトで詳しくご説明されています。

11-データカードやテキストボックスを入力不可にする(自動計算は可能)

利用者には閲覧だけさせ、入力はさせない方法です。

対象項目の[DisplayMode]を[Disabled]に変更する

12-ExcelテーブルのSearchがヒットしない

事象

こちらのサイトを参考にさせていただいて、Excelテーブルをデータソースとしてアプリを作っている最中、検索ボックスに値を入力しても検索結果が正しく表示されなく困っていました。

検索ボックスに値を入れると抽出されない・・・

原因と解決策:複数列を指定している為?

Excelテーブルの書式は、文字型に変更しましたが変化なし。データソースの再取込をしたものの変化なし。変化があったのが、複数列ではなく単一列の指定でした。

検索対象を複数列で設定していたのを・・・
単一列に変更

これでとりあえずは、検索にヒットするようになりました。が、原因は不明のままです。なお、Name列でもID列でも単一列の指定であれば、ヒットするので列の設定が原因ではないような。。。もし、ご存じの方がいらっしゃればコメントいただけると両手を上げて喜びます。

13-Excelテーブルの__PowerAppsId__の必須入力が外れない件

事象

データソースをExcelテーブルにした際に、PowerApps側で一意の値「__PowerAppsId__」という列を自動生成してくれるのですが、フォーム側での入力が必須と扱われてしまう。

Requiredプロパティはfalseにしているが・・・
必須と怒られる

一方、何かを入力すれば登録できます。その際、入力値は無視されシステム側で一意の値が上書きされるようです。

原因と解決策:原因は分からず、適当な文字をデフォルトでsetしておく

原因が分からなかった為、新規登録時には適当な文字をセットしておく対応としました。あとは、この項目を非表示にしておけば見た目上は問題ないので良しとします。

コピーしました!

Defaultに入力する関数
If(IsBlank(Parent.Default), "1", Parent.Default)

14-レコードをFillter後に入力文字検索(Fillter関数・Search関数)

リソース元を取得する際に、予めログインユーザでフィルターし、フィルターしたリストの中から、検索文字で検索するパターンが以下の関数式です。(_UserEmailは変数、SearchInput1.Textはテキストボックス、テキストボックスに入力した文字とリストのName列に一致するレコードを返します)

コピーしました!

関数式
Search(Filter([@テーブル1], ID = _UserEmail), SearchInput1.Text, "Name")

15-リストの並び替え

並び替えをする場合の関数式です。上の式と合わせることもできます。

コピーしました!

関数式
SortByColumns(リスト,"列名"{昇順or降順,"列名2",昇順or降順,・・・})

コピーしました!

上の式と合わせた関数式
SortByColumns(Search(Filter([@テーブル1], ID = _UserEmail), SearchInput1.Text, "Name"),"Date")

上の式で取得したリストを元に、Date列の昇順で並び替えます。こちらのサイトで詳しく解説されています。

16-一定時間ごとにデータを自動で最新化する

Excelテーブルをデータソースとした時に、データの反映が遅かった為、定期的に自動更新させたい場面がありました。こちらの動画が非常に分かりやすかったです。(※音出ます)

本記事で参照させていただいたサイト様

いつも大変参考になる情報をありがとうございます。

こちらのページは随時更新していきます。

この記事は参考になりましたか?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA