🌊

なぜ Power Apps で Microsoft Learn を中心に学ぶことが大切なのか?

に公開

2025年09月10日に行われた Microsoft AI Tour 大阪 では「Copilot で始める AI 開発:スキル習得の最短ルート​ [LT613]」という Microsoft Learn に関するセッションがありました。Microsoft Learn ってなんぞや?という方には本セッションが非常に分かりやすいと思うので、アーカイブ動画があればぜひ見てほしいなぁと思います(≧▽≦)
※現時点ではアーカイブされるかどうかは不明です。

ただあくまでも Microsoft Learn は勉強する手段の1つであり、本や動画でも学びも勿論必要です。本稿ではなんで複数の手段を使って学ぶことが大切で、有益なのかを説明していきます。

Microsoft Learn には複数の役割がある

Microsoft Learn と聞いて、多く人がイメージするのは資格取得のためのトレーニングやラーニングパスと呼ばれる各製品の使い方を体系的にまとめたドキュメント群だと思います。

https://learn.microsoft.com/ja-jp/training/browse/?products=power-apps&levels=beginner

しかし以前は docs と呼ばれていた公式のドキュメント群もいまやMicrosoft Learn の一部ですし、Microsoft Q&A という技術QAフォーラムも Microsoft Learn の一部ということになっています。

トレーニングは「ツールを学ぶ」ことに最適化されている

トレーニングは各製品の使い方を体系的にまとめたドキュメント(ラーニングパス)や資格取得のためにオンラインで講師に基本を教わるイベントのことです。例えば以下のようなラーニングパスを読めば、Power Apps がすぐに使えるようになります。

https://learn.microsoft.com/ja-jp/training/paths/create-powerapps/

ここで学べることは例えば

  • Power Apps ではどのようなアプリが作れるのか
  • Power Apps でアプリの画面を作るにはどういう操作が必要なのか
  • Copilot を活用してアプリを作ることはできるのか

というようなことです。
例えばタスク管理アプリを作りたい!と思った時に下図のような画面を作るまではこのラーニングパスの学びで十分だと思います。

ただ、ここからユーザーの要望を叶えていき、個々の業務に対して最大の効果を発揮する為にはもう少し深い理解が必要です。

ドキュメントは「ツールの構成要素に対する深い理解」が得られる

トレーニング以外にも Microsoft Learn の資料は大量にあります。例えば以下のリンク集にはキャンバスアプリ内の各コントロールや関数、接続するコネクタの情報などがまとまっています。

https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/

例えば Not を利用した Filter 式の委任の警告を解消するにはどうしたら……という疑問を持っている場合

Filter(
    データソース,
    !(EndDate < Today() && Status.Value = "完了")
)

委任のページを読み込んでいくとFilter 関数とコレクションを利用した解決方法が見えてきます。

https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/delegation-overview

//OnVisible に入れる式
ClearCollect(
    colGallery,
    ShowColumns(
        Filter(
            データソース,
            EndDate >=Today()   
        ),
        タイトル,Staff,StartDate,EndDate,Status,ID

    )
);
ClearCollect(
    colNotKanryo,
    ShowColumns(
        Filter(
            データソース,
            And(
                EndDate < Today(),
                Or(
                    Status.Value="未対応",
                    Status.Value="進行中"
                )
            )   
        ),
        タイトル,Staff,StartDate,EndDate,Status,ID
    )
);
ForAll(colNotKanryo,Patch(colGallery,Defaults(colGallery),ThisRecord));
//ギャラリーのItemsに入れる値
colGallery

このようにドキュメントから自分のやりたいことに使えそうなものを探していくことで、より業務に最適化された実装が可能になります。ただ、ここでの学びで得られる技術は Power Apps での実装知識です。アプリ開発における重要な考慮点である 操作の快適性起動速度引継ぎのしやすさ などを考えると必ずしも最適解ではないことが良くあります。

最適解を考える普遍的な概念は本や動画から学ぶ

Microsoft Learn にはアプリの操作性を快適にするには?とかデータモデリングってどういう風に考えれば良いの?という概念的な疑問に答えるドキュメントもあるにはあります。

https://learn.microsoft.com/ja-jp/power-apps/guidance/planning/data-modeling

ですが……あくまでも Power Apps ではこういう事情があるからこんな風に作るのが理想だよ的な簡単な説明が多く、レコードって何? テーブルって何? 正規化って何? といったような基礎の基礎から学んで、自分なりの理想のデータモデリングを考えるのはムズカシイように感じます。
これらの普遍的な概念を学びたい場合はそれぞれの専門家が作った本や動画で学ぶことをお勧めします。例えばデータ設計を学ぶとフラグ管理での絞り込みの便利さに気がつきます。
先ほどの Not を利用した式の委任の警告の解消方法もフラグ管理を活用すると、ここまでシンプルにすることができます。

Filter(
    データソース,
    ViewFlg=true
)

まとめ

いかがでしたか?
Microsoft Learn に拘らず、様々なツールを利用して情報を得ることで視野が広がることを実感頂けたかと思います。
私は本稿のタイトルに「Microsoft Learn 中心に学ぶ」というフレーズを入れました。なぜ中心なのか、を最後に説明したいと思います。それはズバリ、様々なツールで情報を得た後に Microsoft Learn に立ち戻ってほしいからです。 Power Apps をはじめとするクラウドアプリケーションはアップデートがとても速いです。また、Power Apps 独自の制約やルールもございます。それらの最新情報を把握して、アプリを開発する為にはやはり Microsoft Learn をこまめに読み直すという作業が必要です。だから Microsoft Learn から学び、他をつまみ食いし、Microsoft Learn に戻るというこの反復横跳びが非常に重要だと思い、このようなタイトルをつけました。
はっきり言って大変だと思います。ですが、やる価値は大いにあります。みんなで頑張りましょう♪
それではごきげんよう!

Discussion