PowerAppsの使い方

PowerAppsの使い方やできることがわかるブログを目指しています。

PowerApps OneDrive上のExcelファイルをデータソースとして使う

PowerAppsはエクセルファイルもデータソースとして使用することができます。

多少ハマりポイントがあるかなと思うので、手順と合わせて書いてみます。

 

今回はOneDriveで試しましたが、他のクラウドストレージのDropBoxGoogle Drive、Boxなどでも同様にできると思います。

f:id:botherntu:20181019073142p:plain

 

OneDriveでエクセルファイルを作成する

OneDrive上の任意の場所にExcelファイルを新規作成、またはすでにファイルが有る場合はアップロードしてください。

ファイル名やパスに日本語が含まれていても問題はなさそうです。

f:id:botherntu:20181019063733p:plain

Excelでテーブルを作成、設定する

Excelを開いて、データソースとする"テーブル"を作成します。

今回は試しに簡易タイムカード的なシステムをPowerAppsで作る想定で、

名前、種別(出勤か退勤か)、時間 を入れられるテーブルを作ってみました。

 

まず、ヘッダ(見出し)を作っていきます。こんな感じ。

f:id:botherntu:20181019065357p:plain

 

で、次にダミーの値を入れていきます。

 

実際の運用後はもちろんPowerAppsで値を入れられるんですが、ここでダミーの値を入れる理由はPowerAppsに「こんな値が入るんだよ!」というのを教えるのが目的です。

そうすると、PowerAppsがいいかんじに勝手に処理してくれるので、とても楽です。

f:id:botherntu:20181019065816p:plain

 

そうしたら、最後にテーブルとして指定します。

ホーム > テーブルとして書式設定 > OKとします。

先頭行をテーブルの見出しとして使用する、にチェックが入っていることも確認してください。

f:id:botherntu:20181019064741p:plain

これでこのExcelをテーブルとして使用する準備が完了しました。

PowerAppsからデータソースを参照する

PowerAppsから参照する手順は他のデータソースと同様です。

まずコネクタを選んで・・・

f:id:botherntu:20181019071330p:plain

ファイルの場所まで行って・・・

f:id:botherntu:20181019070758p:plain

テーブルを選べば・・・

f:id:botherntu:20181019071007p:plain

 

できた!

f:id:botherntu:20181019071726p:plain

ハマりポイント

無事参照ができて、保存処理を実装したら

こんなメッセージが出た方いらっしゃいますか?

"変更の保存中に問題が発生しました。データソースが無効の可能性があります。"

f:id:botherntu:20181019072024p:plain

ひょっとして元のエクセルファイルを開きっぱなしにしていないでしょうか。

Excelは閉じてないとどうもだめみたいです。確認してみてください。

PowerApps タイマーを利用してUIをアニメーションさせる

タイマーを利用するとボタンを明滅させて目立たせたり、テキストをアニメーションさせたりできます。

 

 

 

 

f:id:botherntu:20181009070921g:plain

 

アニメーション例

Xとタイマーの値を連動させると横移動します。

[Xプロパティ] Timer1.Value

 

ボタンの明滅はFillで設定できます。

[Fillプロパティ] RGBA(56, 96, 178, Timer1.Value/2000)

 

変数を利用すると、表示切り替えなどに利用できます。

<タイマー>

[OnTimerEnd] UpdateContext({buttonSwitch:!buttonSwitch})

<UI>

[Visible] buttonSwitch

[Color] If(buttonSwitch,Red,White)

 

上記以外にも活用方法はあると思います。

いろいろ試して遊んでみてください。

 

よく使うプロパティ

[Timer.OnTimerEnd]:タイマーが終了したときに実行したい関数を記述できます。

[Timer.Value]:タイマーの現在の値をミリ秒単位で取得できます。

[Timer.Duration]:タイマーの長さをミリ秒単位で設定できます。

 

PowerApps 推奨開発環境について

PowerAppsはブラウザーで開発可能ですが、ブラウザによって挙動があやしかったりします。

 

少し前の情報ですが、IEは動作が重かったり、FireFoxは一部表示がおかしい箇所がありました。

 

私は普段ChromeでPowerAppsに触れています。

 

MS的にもEdgeかChromeが開発の推奨環境のようです。

下記リンクの[PowerApps Studio のサポートされているブラウザー]が開発環境のことを指しています。

docs.microsoft.com

 

可能であればEdgeまたはChromeで開発するのがいいと思います。

 

Macの場合はChromeがいいでしょう。

[PowerApps Studio のサポートされているブラウザー]のなかでmac OSではChromeしか選択肢がありませんので。

 

PowerApps 1アクションで関数を2つ実行する

たとえばボタンのOnSelectで、フォームの保存と画面遷移をしたい場合。

SubmitForm(Form1)
Back()

 

これでは動きません。こんな感じにエラーになると思います。

f:id:botherntu:20180915114930p:plain

 

 1.SubmitForm(Form1)

2.Back()

2つのことを実行させたいわけですが、続けて複数の関数を書く場合は
関数の終わりに

;

を入れます。

SubmitForm(Form1);
Back()


こうすると、正常に動くようになります。

 

PowerApps ボタンにSEをつける

ボタン押下時に、SEを鳴らしてみます。

一見難しそうですが、関数はたったの1行だけで実装できます。

 

サウンドファイルを準備する

まずはサウンドファイルをメディアに追加しましょう。

 

画面上部から、[ファイル]を選択。

次に左メニューから[メディア]を選択して、下の画面を表示します。

f:id:botherntu:20180912025910p:plain

 

表示できたら、参照から再生したいサウンドファイルを指定します。

これでサウンドファイルの準備ができました。

 

オーディオコントロールを準備する

次にオーディオコントロールを用意します。

 

[挿入] > [メディア] > [オーディオ]と選択し、コントロールを挿入します。

f:id:botherntu:20180912034559p:plain

 

オーディオコントロールのプロパティの[メディア]から、追加したサウンドファイルを選びます。

f:id:botherntu:20180912030120p:plain

 

これでオーディオ再生用コントロールの準備ができました。

 

実装する

次はボタンを押したら音がなるようにしていきます。

 

適当にボタンを追加し、

メディア・コントロールの AutoStart プロパティに下記の様に記述します。 

If(ButtonA.Pressed,true,false)

ButtonAの部分はご自分のボタンの名前に変えてください。

 

f:id:botherntu:20180912032514p:plain

 

これで完了です。

 

ボタンを押すと、オーディオが再生されます。

f:id:botherntu:20180912032405g:plain

 

完成!

 

実際はオーディオコントロールは非表示にしておくのがいいと思います。

 

変数を利用してボタン以外でも音を鳴らす

ボタン以外で実装する場合には、変数を用いる場合もあります。

変数を使う場合はボタンなどのOnSelectなど任意のタイミングで下記の様に記述します。

UpdateContext( { PlaySelectSound: true} );
UpdateContext( { PlaySelectSound: false} )

 

f:id:botherntu:20180912033808p:plain

 

オーディオコントロールの方もコメントにしていた内容に修正することで、音がなるようになります。

If(PlaySelectSound,true,false)

PowerApps 困ったときに助けてくれるリンク集

PowerAppsで困ったとき。

 

私のブログでも頑張って情報発信していきますが、それでもわからないときは公式の情報が頼りになります。公式へのリンクを中心に、こういうときどこみたらいいの?というのを載せてみます。

 

困ったときに参考にしてみてください。

 

ライセンスがよくわからない。

ライセンスの概要 - PowerApps | Microsoft Docs

価格 - PowerApps

 

PowerAppsの使い方がわからない。

まずは公式リファレンスを参照するのがおすすめ。

 

・数式(関数)がわからない!

関数、シグナル、列挙型 - PowerApps | Microsoft Docs

 

・コントロールがよくわからない!

プロパティの検索 - PowerApps | Microsoft Docs

 

・委任がよくわからない!

委任について - PowerApps | Microsoft Docs

委任可能なデータ ソース - PowerApps | Microsoft Docs

委任できる内容はアップデートしていくようです。随時チェックが必要ですね。

 

・変数を使いたい!

キャンバス アプリの変数について - PowerApps | Microsoft Docs

※できるだけ変数の使用を避けるようガイドラインが出ています。乱用は避けたほうがいいかも・・・でもyoutubeで外人が景気よく変数使ってたりする・・・

 

SharePointフォームカスタマイズ周りがわからない!

SharePoint フォームの統合について - PowerApps | Microsoft Docs

 

PowerAppsユーザコミュニティ

FaceBookにPowerAppsのユーザグループがあります。

PowerAppsについて日頃から情報収集、情報発信されている方々が多くいらっしゃいますので、どなたか質問に答えてくれるかもしれません。

www.facebook.com

 

PowerAppsユーザコミュニティ(英語)

本場のユーザコミュニティもあります。

こっちのほうがグローバルな分情報量が多いです。海外の方がPowerApps広まってますしね。

PowerApps Community - Power Users Community

 

PowerApps サポート

直近のバグ情報が載っており、昨日まで動いていたアプリが動かなくなった!といったときにバグなのかどうかとりあえずわかります。

サポート | Microsoft PowerApps

 

教えてもらう

手っ取り早くプロに教えてもらうという手も。お金かかるけど。

PowerApps/Microsoft Flowによるアプリ開発について|株式会社フロッグポッド

PowerApps / Microsoft Flow アプリ作成支援サービス | Office 365・SharePointリアルソリューション

 

 

(自分のブログのリンクを貼らないのはどうなんだろう・・・)

PowerApps ボタン系コントロールについて

テキスト系以外のコントロールについて整理してみる。

 

ボタン系コントロール一覧 

PowerAppsでは、オードソックスなボタンから、ラジオボタン、スライダーや評価、タイマーなど様々なコントロールを設置できます。

 

ざっと以下のような感じです。

f:id:botherntu:20180910002219p:plain

 

ボタン

オードソックスなボタンです。OnSelectにボタン押下時の動作を記述して使います。

同じことは[アイコン]を使用しても実装することが可能です。

ドロップダウン

選択肢がベロっと出るやつです。1つの項目しか選択できません。

コンボボックス

複数選択、または選択肢の検索を行いたい場合に使用します。

プロパティでどちらもOn Offが設定可能です。

日付選択

日付を選択できます。選択した値は .SelectedDate で取得できます。

リストボックス

複数の項目を選択できます。

プロパティで複数選択しない設定にすることもできます。

チェックボックス

True Falseの設定ができます。設定値として参照することで

フォームの表示非表示など様々なことに応用できそうな感じですね。

ラジオ

一意の項目を選択します。.Layout を変更することで横並び、縦並びを変更できます。

切り替え

On Off (True False)の設定が行なえます。チェックボックスと同じような活用ができます。項目に適したコントロールを使うのがいいと思います。

スライダー

最大値、最小値、現在の値(Value)などを設定できます。

応用としてタイマーの進捗を表したり、データソースの引数にすることで表示している画像を回転させる、といった実装を見たことがあります。(相応の仕込みが必要)

見た目のカスタマイズも何例かみたことあります。

 

スマホの傾きの値と同期することで傾きを見た目でわかるようにする、とかできそう。

意味があるかは知らない・・・・

評価

整数値の評価を入力できます。体調管理アプリで体調の評価に使ったりとか。タスク管理で重要度や優先度の入力に使ったりとか。

タイマー

タイマーを設置できます。

自動スタートやリピート設定、長さなどを指定できます。

開始時や終了時に数式を実行できます。

 

例えば、アプリ起動画面を作って起動後3秒で自動でタイトルからメニュー画面へ遷移するとか、保存後完了画面へ遷移して3秒後に一覧画面へ戻る、といった実装もできます。

 

また、タイマーを応用利用することで画面にアニメーションを実装することもできます。

単純なコントロールの明滅や、スライドアニメーションなどが実装できます。

 

実際利用する際はタイマーは非表示にしておく場合が多いと思います。

わかりにくい!知りたいことが書いていない!記事に誤りがある!この記事イケてないな!
などありましたらご指摘いただけると幸いです。

コメントまたはTwitterの方までお願いします。