アプリを作成していくときの基本的な使い方や、自分が分からなくて調べたことなどを思いついたまま殴り書きしていきます。
なお、本サイトで紹介しているものは全てMicrosoft 365 Business Standard(Office365 E3)のライセンス内で使用できるものです。(こちらのライセンスをお持ちであれば追加費用無し)
目次 非表示
- 01-Power Appsとは何なのか?
- 02-SharePointからアプリを作る手順
- 03-アプリを動かしてみる方法
- 04-アプリを公開する(みんなが使えるようにする)
- 05-スマホでPower Appsを動かす手順
- 06-SharePoint画像列に画像が登録できない(反映されない)件
- 07-SharePointリストにデータが反映されない件
- 08-Power AppsとSharePointサイトの日時データの取扱い
- 09-データカードの追加
- 10-2つの日時の差異を自動計算する
- 11-データカードやテキストボックスを入力不可にする(自動計算は可能)
- 12-ExcelテーブルのSearchがヒットしない
- 13-Excelテーブルの__PowerAppsId__の必須入力が外れない件
- 14-レコードをFillter後に入力文字検索(Fillter関数・Search関数)
- 15-リストの並び替え
- 16-一定時間ごとにデータを自動で最新化する
01-Power Appsとは何なのか?
Power Appsって何?という問いに対しては、ギークフジワラさんのこちらの動画が簡潔で分かりやすいです。5分程度の動画なのですぐ終わります。
02-SharePointからアプリを作る手順
SharePoint
SharePointページで[サイトの作成]、[チームサイト]と進みます
各項目をセットします
組織内で命名ルールがある場合はそちらに従います
追加したいメンバーを追加し、[完了]をクリックします
これで新規のサイトが作成出来ました。次にリスト(テーブル)を作成します。
続いて実際のデータを蓄積するリスト(テーブル)を作成します。
[新規]⇒[リスト]をクリックします
[空白のリスト]をクリックします
Excelやcsvからも作成できますが、今回は新しくリストを作ってみます。
[名前]と[説明]を入力し、[作成]をクリックします
[タイトル]⇒[列の設定]⇒[名前の変更]をクリックします
ここからは列を設定していきます
列名を任意の値に変更します
[列の追加]⇒[テキスト]を選択し[次へ]をクリックします
型をここで設定するわけですね。
各項目を入力・選択します
[列の追加]⇒[日付と時刻]⇒[次へ]をクリックします
次回点検日も作ってみます。
各項目をセットします
列の順番を入れ替えてみます
[すべてのアイテム]⇒[ビューに名前をつけて保存]をクリックします
使いやすくするために「ビュー」という単位で保存しておきます。
ビューの名前を入力し、[保存]をクリックします
テストデータを入れておきます
[グリッドビューでの編集]をクリックし、任意のデータを入れておきます
入力完了後、[グリッドビューの終了]をクリックします
[統合]⇒[Power Apps]⇒[アプリの作成]をクリックします
任意のアプリ名を入力し、[作成]をクリックします
Power Appsの画面が立ち上がります
以上で、SharePointリストからアプリを作成する手順は終了です。台帳メンテのみの機能であれば、これでとりあえず動きます。
03-アプリを動かしてみる方法
上記のSharePointから作成したアプリを動かしてみます。アプリの動作チェックは簡単です。
再生ボタンをクリックします
項目をクリックしたり、+ボタンで追加したりすることが出来ます
終了する場合は右上の[×]をクリックします(ブラウザの[×]ではありません)
キーボードの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]に下記関数を入力
コピーしました!
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__」という列を自動生成してくれるのですが、フォーム側での入力が必須と扱われてしまう。
一方、何かを入力すれば登録できます。その際、入力値は無視されシステム側で一意の値が上書きされるようです。
原因が分からなかった為、新規登録時には適当な文字をセットしておく対応としました。あとは、この項目を非表示にしておけば見た目上は問題ないので良しとします。
コピーしました!
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テーブルをデータソースとした時に、データの反映が遅かった為、定期的に自動更新させたい場面がありました。こちらの動画が非常に分かりやすかったです。(※音出ます)
いつも大変参考になる情報をありがとうございます。
こちらのページは随時更新していきます。
この記事は参考になりましたか?