4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Glide vs PowerApps】時間と場所をボタンひとつで記録できる出張報告書App

Last updated at Posted at 2025-08-09

:speech_balloon: 2つのツールでアプリを作ろうと思った経緯

急に出張が入ったので、スマートフォンから簡単に視察記録が取れるようなツールを作りたいなと思い立ち、Glideは30分くらいでサクッと作りました。
しかし2025年8月現在、GlideのGoogleスプレッドシート連携は有料化しており、Glideからでないとデータが呼び出せないことに不便を感じ、PowerAppsで同じようなものを作れないかチャレンジしてみました。

:iphone: 動作デモ(Gif)

まずはGlideで構築したアプリの操作画面(動画)をご覧ください。

1000006395.gif

:beginner: Glide(グライド)とは

非常に感覚的に操ることができるノーコードアプリ開発ツールです。
プログラミング知識が不要であることに加え、修正を即座に反映するため、出来上がりのイメージを持ちながら構築できるのが魅力と考えられます。
ボタンのアクションで現在時刻を取得して登録、現在位置の取得など、defaultのメニューから選択して実装できたのも便利でした。
過去には無料プランでもGoogleスプレッドシートへの連携が可能であったようですが、残念ながら現在は有料化されています。

:arrow_down_small: PowerApps画面

:arrow_left: 左:入力画面  :arrow_right: 右:履歴詳細画面
スクリーンショット 2025-08-09 181951.png

取得した値はSharepointリストに格納しています。

image.png

:arrow_down_small: PowerAutomate実行履歴

後続のフローも(途上ですが)作成できたので、ご参考まで。Teamsの任意のチャネルに投稿しています。

newPowerAutomate.png

:writing_hand: Tips: PowerAutomateで取得した時間はなぜか9時間ずれる

解決方法:9時間プラスすることで補正されました。

{3F0AC39C-5ABA-40E3-A784-2BB6F7B77CB9}.png

:writing_hand: Tips: Teamsへの投稿時にリンクが反映されない

解決方法:エディタをOFFにすることで埋め込むことができました。

{6CF3E15C-F594-497F-B12A-1151DF267A55}.png

:bulb: 工夫したところ

:dizzy: チェックイン・チェックアウトボタンで現在時刻を取得

ボタンアクションに変数を設定

:white_check_mark: チェックインボタン

Set(CheckInHour, Text(Hour(Now()), "00")); // 現在の時刻(Hour)を2桁の文字列に変換し、変数CheckInHourに保存する
Set(CheckInMinute, Text(Minute(Now()), "00")) // 現在の分(Minute)を2桁の文字列に変換し、変数CheckInMinuteに保存する

:white_check_mark: チェックアウトボタン

Set(CheckOutHour, Text(Hour(Now()), "00")); // 現在の時刻(Hour)を2桁の文字列に変換し、変数CheckOutHourに保存する
Set(CheckOutMinute, Text(Minute(Now()), "00")) // 現在の分(Minute)を2桁の文字列に変換し、変数CheckOutMinuteに保存する
時、分のパーツのdefault値にそれぞれ変数を設定

{830129C6-009D-4C03-B517-B92AD4F31DE0}.png

:point_up: 例)チェックイン(時間)

CheckInHour//現在の時刻(Hour)を保存した変数

:dizzy: 現在地の座標をGoogleMapのURLに変換

緯度経度を取得して格納

:satellite_orbital: 緯度列のDefault値に下記を設定

If(IsBlank(Parent.Default)=true,Location.Latitude,Parent.Default)

:satellite_orbital: 経度列のDefault値に下記を設定

If(IsBlank(Parent.Default)=true,Location.Longitude,Parent.Default)
Sharepointリスト側で項目の結合

{C81529D2-1215-4347-97BE-12C02C8B585D}.png

="https://www.google.co.jp/maps/place/"&緯度&","&経度

:end: 成果物レビュー

一通りの動作確認は終わったのですが、明日2日後に迫った出張で実際に利用してみてから改めてレビューしたいと思います。
(2025/8/11更新)
自宅以外で初めて緯度&経度の計測とGoogleMapURLへの変換に挑みましたが、正確に捕捉することができました。Glideで位置情報の記録が簡単にできることが魅力に感じ、ぜひ実用に活かしたいと思ったので、形にすることができて良かったです。
改善点というか、よく調べたいと思ったこととしては通信が不安定になり、二重投稿されてしまう事象が発生しました。
併せて、リストには添付されている画像がSharepointへ格納する時点で取得できない事象が発生しています。このケースの場合、添付ファイルがないとみなされ、リンクなしの投稿で成功していました。
➡無理矢理な対処方法ではありますが、HasAttachmentsの分岐からさらにFalse側でも添付ファイルを取得させ、結果によって処理を分岐させてみました。実行履歴の画像を差し替え済みです。
ローカルに格納せずサーバへ直接保管する仕様では、実用に向けて限界があるのではと感じました。
また、例えば社内の複数部署へ展開した場合、投稿先のTeamsのチャネルは変数で格納することで分岐が作れそうな気もしましたが、格納先のフォルダのロケーションは固定にならざるを得ず、ある程度情報共有が許されている部署にしか展開できなさそうです。
環境設定ファイルのようなものが作れたら、もっと汎用性を持たせられるのでは…と思案してみました。
が、もしかするとそこまで利用人数が増えた場合には、買い切りのパッケージアプリを検討したほうがいいのかもしれないですね。
ラップして解決するのであれば、社内に権限付与を相談してみようかな。

{F2950263-5F49-4C3F-A6AD-B832DED97122}.png

:repeat: 改善したいところ

  • せっかくGoogleMapのURLまで生成できたのに、リンクが効いていないところはどうにか改善したいTeamsの投稿では無事に解決しました
  • Sharepointに連携するなら、共有、報告まで一気に終わらせたい(即時性は求められていないけれど、Teamsに投稿するか?悩みどころ)画像はSharepointのドキュメントライブラリに格納し、リンク先を投稿する形で実装しました
  • 本当は画像を直接投稿したいので、引き続き格闘します

{9D4BD7A6-B01E-41DB-934E-797AFE7A6C4D}.png

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?