技術情報ブログ
Power Platform
2025.11.26

Power Apps:テーマカラー変更機能を実装しよう

Power Apps:テーマカラー変更機能を実装しよう
伊礼圭吾

こんにちは。アーティサン株式会社の伊礼(いれい)です。

ダークモード機能やテーマカラー変更機能ってありますよね。

白を基調とした清潔感のあるデザインや、暗い色をベースにした目に優しいデザインなど…
ユーザーの好みや環境で選べる、あったらチョットウレシイそんな機能。

今となってはいろんなアプリやWebサイト、OSにも搭載されていますし、
近年では色覚多様性に配慮したカラーユニバーサルデザインが求められる場面もあるかもしれません。

今回はそういったテーマカラーを選択できる機能をPower Appsで作成したアプリに実装してみたいと思います。

動作イメージ

Videotogif (2)

アーティサンでは、Power Apps を用いたアプリ開発のご支援や、 企業様の内製化サポートも行っております。
「自社でも Power Apps を活用したい」「設計から相談したい」という方は、 以下のサービスもぜひご覧ください。


目次

 

1. まずはアプリの画面を用意

今回はMicrosoftより提供されているカレンダーテンプレートに実装していきます。
皆さんもそれぞれ任意のアプリ画面をご用意ください。

Power Appsカレンダーテンプレート画面

 

2. App.Formulasにカラーセットを設定

最初にAppのFormulasプロパティにカラーセットを記述していきます。

カラーセットは以下のように記述していきます。

  • App.Formulas

MainTheme = {
    Primary: RGBA( 0,144, 168, 1),
    Secondary: RGBA(229, 244, 245, 1),
    Accent: RGBA(225, 70, 72,1),
    Background: RGBA(255, 255, 255, 1),
    Text: RGBA(51, 51, 51, 1),
    Border: RGBA(51, 51, 51, 1)
};

Formulasプロパティとは?

アプリ全体で利用可能な変数や関数を定義することができるプロパティです。
このプロパティで定義した値はアプリ内すべての画面から参照できるので、
今回のテーマカラーのように各画面から共通で使用したい値などを定義する場合に適しています。

参考:Formulasプロパティ : Microsoft Learn

今回はWebアプリケーションでも主要なカラーセットをもとに定義しています。

  • Primary (プライマリカラー)
    デザイン全体の主軸となる基本色。ブランドや製品のイメージを強調し、ユーザーの印象に残る色

  • Secondary (セカンダリカラー)
    プライマリカラーを補完し、追加の視覚的なアクセントを提供する

  • Accent (アクセントカラー)
    目立たせたい要素やユーザーの目を引きたいポイントに使用される色

  • Background (背景色)
    ページや画面全体のバックグラウンドとして使用される色

  • Text (テキストカラー)
    主に平文などに使用される色。バックグラウンドカラーとコントラストのある色が選ばれやすい

  • Border (ボーダーカラー)
    枠線などに使用される色

これらのカラー以外にもアプリによっては、サブテキストやホバーなどのカラーを定義することもあります。

今回は上記の6項目で、複数のテーマを作成してみましょう。

  • App.Formulas

//アーティサン公式サイトをイメージしたテーマ
MainTheme = {
    Primary: RGBA( 0,144, 168, 1),
    Secondary: RGBA(229, 244, 245, 1),
    Accent: RGBA(225, 70, 72,1),
    Background: RGBA(255, 255, 255, 1),
    Text: RGBA(51, 51, 51, 1),
    Border: RGBA(51, 51, 51, 1)
};

//ダークモードのテーマ
DarkModeTheme = {
    Primary: RGBA(33, 33, 33, 1),
    Secondary: RGBA(55, 55, 55, 1),
    Accent: RGBA(100, 181, 246, 1),
    Background: RGBA(18, 18, 18, 1),
    Text: RGBA(255, 255, 255, 1),
    Border: RGBA(90, 90, 90, 1)
};

//夕焼けのような優しいオレンジのテーマ
SunsetTheme = {
    Primary: RGBA(255, 140, 105, 1),
    Secondary: RGBA(255, 221, 178, 1),
    Accent: RGBA(255, 183, 147, 1),
    Background: RGBA(245, 230, 215, 1),
    Text: RGBA(60, 40, 40, 1),
    Border: RGBA(204, 102, 102, 1)
};

各テーマのカラーセットの記述が完了したら、App.Formulasの最後に次の式を追加しましょう。

  • App.Formulas

ColorSet = [MainTheme,DarkModeTheme,SunsetTheme];

これにより、各テーマがColorSetテーブルに格納されます。

 

Power Apps のカスタマイズでお困りですか?
画面デザインの最適化やテーマ構築など、アーティサンでは実践的な内製化支援を行っています。
「こういう機能を自社アプリにも取り入れたい」という場合は、以下のサービスをご活用ください。

3. テーマ変更用の各種オブジェクトを作成

ユーザーがテーマカラーを選択できる機能を実装していきます。

まずはテーマカラー選択タブを作っていきましょう。
コンテナーの中にギャラリーを配置して、その配下にボタンを格納します。

↓ツリービュー

ツリービュー

ギャラリーとボタンを配置したら、アイテムとボタンの色を設定します。

  • galColorTheme.Items

ColorSet
  • btnThemeSelect.Fill

ThisItem.Primary
  • btnThemeSelect.BorderColor

ThisItem.Accent

ボタンのHoverやPressしたときの色も設定してあげると、実際にボタンを押したときの見栄えもいいですね。

  • btnThemeSelect.HoverFill

ThisItem.Primary
  • btnThemeSelect.HoverBorderColor

ThisItem.Secondary
  • btnThemeSelect.PressFill

ThisItem.Primary
  • btnThemeSelect.PressBorderColor

ThisItem.Accent

私はこのようになりました。

動作例

配置する場所やサイズ、構成などは皆さんのアプリに合わせて調整してみてください。

続いて、先ほど追加したテーマカラー選択タブの表示、非表示を切り替える処理を記述していきます。

  • btnThemeTab.OnSelect

//テーマカラー選択タブの表示、非表示を切り替え
UpdateContext({IsThemeTabVis:!IsThemeTabVis});

bool値は否定演算子である「 ! 」を活用することで、If関数などを使わずに反転させることができます!

  • ctnThemeTab.Visible

IsThemeTabVis

この通り、アイコンをクリックすることでテーマ一覧タブの表示、非表示を切り替えることができます。

表示切替

続けて本命のテーマ入れ替え処理、といってもたったの1行です!

  • btnThemeSelect.OnSelect

//選択したテーマを反映
Set(SelectTheme,ThisItem);

これで下準備は完了です!

 

4. 各コントロールにテーマカラーを適用

ついにアプリの各コントロールにテーマカラーを適用していきます。
といっても方法はとても簡単。

各オブジェクトのFillやColor、BorderColorに対して

SelectTheme.Primary //Primaryなど任意のパラメーターを指定

といった式を設定していくだけです!

 

5. 動作確認

これらの設定を済ませることで…

完成動作

自由自在にテーマカラーを変更することができます!

もちろん定義するテーマカラーを増やすことで、より豊富なテーマカラーを実現できますし、

各テーマの項目を増やすことで、1つのテーマの中でもより詳細に各コントロールのカラー設定が可能になります。

 

おわり

今回はPower Appsにおけるテーマカラー変更機能の実装でした。

実装は非常にシンプルですが、こういう機能はアプリが目に見えて変化するのでとても楽しいですね!

ちなみに実際にアプリを構築する際のデザイン方針については、デジタル庁より提供されている デジタル庁デザインシステムβ版 が非常に参考になります。

システムにおけるカラーデザインや、アクセシビリティ要件についても分かりやすくまとめられていて、弊社でもお客様へ提供するPower Appsの画面デザインの参考とさせていただいております!
参考:カラー(概要)|デジタル庁デザインシステムβ版

Power Appsという制限の中で、ユーザーが使いやすいデザインを考えるのはすごく難しいことですが、
本記事が少しでも皆さんの参考になれれば嬉しいです!

👨‍💻 Power Apps の構築・デザインでお悩みの方へ

アーティサンでは、Power Apps の画面設計、機能追加、内製化支援などを通じて、 企業様のアプリ活用をトータルでサポートしています。
「自社に合わせたアプリを作りたい」「プロに相談しながら進めたい」など、 どんな段階でもお気軽にご相談ください。

伊礼圭吾

それでは!

Power Platform(SharePoint・Power Apps・Power Automate)に関する営業活動や設計、開発などを担当:伊礼 圭吾

伊礼 圭吾

🖊伊礼圭吾さんのブログ一覧はこちら

音楽と料理が生きがいです Power Platform関連を中心に、ローコードノーコード関連とかで学んだことをアウトプットしていきます。

Microsoftクラウド関連

シェアする
記事カテゴリ
最新記事
2025.11.26

Power Apps:テーマカラー変更機能を実装しよう

2025.11.18

SharePoint FAQ:初心者から「機能不足」に悩む上級者まで、必ず役立つQ&A 12選

2025.11.12

SharePoint×Power Automate:承認フローの作り方完全ガイド(第3回:承認の処理~フローの完成まで)

2025.10.29

SharePoint×Power Automate:承認フローの作り方完全ガイド(第2回:トリガー設定~承認前処理の実践編)

2025.10.15

SharePoint×Power Automate:承認フローの作り方完全ガイド(第1回:事前設定編)

attributeO/Rマッパーマーカークラスタリングライブラリビューnest新機能restoreデータ行の制限チャットGPTCI/CD便利機能ゴミ箱連携添付ファイルコントロール使い方サイトブランド化名古屋ファイル保存申請システムvalidationazure sql databasetailwindcssアクセス制限入れ子変数Power BI引き継ぎgalleryパイプラインカレンダー完全削除接続ファイルサイズ基本知識フォントカスタマイズ体験記エンティティワークフロー自動化ローコードCase式マルチテナントノーコード動的リスト検索個人列退職ギャラリーDevOpsCalendarモデル駆動型データフローフルリモートワークPowerAutomateブランドセンター感想フォルダ構成設定AngularHTTP Requestドロップダウンメニュー承認collectionMicrosoft 365グループユーザー列所有者を変更スクロールMicrosoft 365Teamsセキュリティロールrecycle binアーティサンX-SP Designテーマ作成チームサイトMicrosoft Learn DocsテーマカラーAccessCSSBreakpointObserverリマインドコレクションセキュリティグループSharePoint Online異動コンテナ簡易在庫管理ローコード開発ビジネスルールアクセス許可Artisanスライドショーデザイン拡張コミュニケーションサイトカスタムコネクタダークモードInfoPathxUnitメディアクエリSet複数の添付ファイル送信元リストLoopショートカットキー時間外非エンジニアDataverseSharePoint Framework転職Slide showMicrosoft365サイトの種類OpenAPIFormulasプロパティMatTable.Net Core 3.1スマホForAll承認フローメールの送信非表示Microsoftshortcut key通知体験談JavaScriptSPFx主キー比較移行要件定義MCPサーバーカラーセットAngular MaterialVSCodePCUpdateContextform差出人アプリdesignconcat関数ファイル勉強表示サンプルCopilot Studio社内ポータル多言語化サイト構成FAQエージェントカラーユニバーサルデザインデータ構造.Net Core Test Explorerレスポンシブロードマップエクスポートインスタントクラウドフロー[市民開発者JSON文字制限フィルター クエリ内製化切替samplePowerAppsグループウェアMUI権限設計AIチャットボットアプリデザインモデル駆動型アプリSortByColumns関数Dataverse for Teams入門技術インポート自動化したクラウドフロー構築デザインフロー実行ドキュメント ライブラリ市民開発登録者X-SPNFCタグエンゲージメントMultilingualデータ移行実運用UI/UXPower AppsTypeScriptitem関数初心者Itカスタマイズ委任自動化したクラウド フロー運用開発環境filter query管理システム列StyleDLPポリシー地方自治体MLJSON書式保守性アクセシビリティPower PlatformHTMLGoogle Maps中級者DXcomponentVBAフローの種類選択肢列環境sortガバナンス登録日StudioTestCopilot Studiot共有リンクテンプレート化DX推進SharePointEF CoreMarker Clustererキャンバスアプリ情報技術ダイアログエラーインスタント クラウド フロー参照列本番環境ソートerror notification更新者AICanvas自治体DXレポート化サイト複製作り方ExcelマイグレーションRANK()関数DatePickerメッセージIDコンポーネントエクセルスケジュール済みクラウド フローChatGPTライセンスmultiple itemエラー通知更新日生成系AITest Studio生成AI自治体APIPnP PowerShellページ承認Power AutomateFramework CoreDynamics 365 SalesDropdownメールdialogerrorレスポンシブ レイアウトOpenAI環境構築手順複数項目削除変更Copilotテスト事例HTTP リクエストカスタムスクリプトドキュメント管理C#Attribute directivesMicrosoft Translatorviewfirst()関数Tips復元responsive layoutオープンAIpipelineシェアポイントフォルダ外部DBlicenseテストスタジオ活用ワーケーション業務効率化IT管理
PageTop
ページトップに戻る