Set 関数

適用対象: Canvas アプリ カード Dataverse ローコード プラグイン Power Platform CLI

グローバル変数の値を設定します。

概要

Set 関数を使用すると、グローバル変数の値を設定できますが、このグローバル変数により、ユーザーがボタンを押した回数やデータ操作の結果など、一定の情報が一時的に格納されます。

グローバル変数はお使いのアプリ全体で、どの画面でも利用できます。 グローバル変数は最も単純な種類の変数であり、たいていの状況でニーズを満たせます。 単一の画面でのみスコープをもつコンテキスト変数や行レベルでテーブルを変更できるコレクションもあります。 これらの他のオプションの詳細については、変数について を確認してください。

Power Apps では基本的に、ユーザーがアプリを操作すると、計算式が自動的に再計算されます。 変数に依存する計算式は、変更されると自動的に更新されます。 ただし、Set 関数で使用されている計算式の値が変更するなら、変数は自動的に更新されません。 このため、アプリメーカーは変数を手動で更新する必要があり、エラーが発生しやすく、他の人が理解するのが難しくなる可能性があります。 変数を使用する前に、変数について のページを確認してください。

内容

グローバル変数は Set 関数を使用して暗黙的に作成されます。 明示的な宣言は必要ありません。 グローバル変数の Set 関数をすべて削除すると、そのグローバル変数は存在しなくなります。 変数をクリアするには、その値を Blank 関数 の結果に設定します。

Power Apps Studio 内の ファイル メニューの変数ビューで、変数の値、定義、使用について確認できます。

具体例はこのトピックで後ほど紹介しますが、グローバル変数には以下をはじめとするさまざまな情報が含まれます。

  • 単一の値
  • レコード
  • テーブル
  • オブジェクト参照
  • 計算式の結果

アプリが終了するまで、グローバル変数の値は保持されます。 アプリを終了すると、グローバル変数の値は失われ、アプリが再び読み込みされたときに再作成されます。

グローバル変数に既存のコレクションやコントロールと同じ名前は使用できません。 同じ名前がコンテキスト変数として使用されることがあります。 この 2 つの間の曖昧さを解消するには、曖昧性除去演算子 を使用します。

Set には戻り値がないため、動作の数式 内でのみ使用できます。

構文

Set( VariableName, Value )

  • VariableName - 必須。 作成または更新するグローバル変数の名前。
  • Value - 必須。 コンテキスト変数に割り当てる値。

計算式 内容 結果
Set( Counter, 1 ) グローバル変数 Counter を作成または変更し、その値を 1 に設定します。 Counter の値は 1 になります。 数式に Counter という名前を使用することで、この変数をどの画面からでも参照できます。
Set( Counter, 2 ) 前の例のグローバル変数 Counter の値を 2 に設定します。 Counter の値は 2 になります。
Set( Counter, Counter + 1 ) 前の例のグローバル変数 Counter の値を 3 に増やします。 Counter の値は 3 になります。
Set( Name, "Lily" ) グローバル変数 Counter を作成または変更し、その値を Lily に設定します。 Name の値は Lily になります。
Set( Person, { Name: "Milton", Address: "1 Main St" } ) グローバル変数 Person を作成または変更し、その値をレコードに設定します。 このレコードには、NameAddress の 2 つの列が存在します。 Name 列の値は MiltonAddress 列の値は 1 Main St です。 Person{ Name: "Milton", Address: "1 Main St" } というレコード値を持っています。

このレコード全体を参照するには Person という名前を使用し、このレコードの個別の列を参照する場合には、Person.Name または Person.Address を使用します。
Set( Person, Patch( Person, {Address: "2 Main St" } ) ) Patch 関数を操作してグローバル変数 PersonAddress 列の値を 2 Main St に更新します。 Person{ Name: "Milton", Address: "2 Main St" }というレコード値を持つようになりました。