Set関数、UpdateContext関数のように、プロパティ内でのみ機能する変数を宣言する関数である、With関数について紹介します。
個人的にはWith関数をうまく使えるようになってくると中級者かなと思っています。
With関数
値を計算し、名前付きの値のインライン レコードを含む 1 つのレコード に対してアクションを実行します。
公式より引用
スコープ(使用範囲)がプロパティの中だけで利用できるローカル変数のように扱えます。
構文
With( レコード、数式 )
レコード – 数式で利用するレコード。インライン構文 { name1: value1, name2: value2, ... } を使用したレコード形式も利用できます。
数式 – 何らかの数式。レコードで指定した値を参照可能。
使い方
通常テーブルやギャラリーで選択した値を取り出すためには、コントロール名.Selected.プロパティで取得します。
ただ以下のように複数の項目を表示する場合には、コードが長くなりがちです。
このように同じ値が繰り返し参照される場合にWith関数を使用すると、コードが短くなり、パフォーマンスも向上します。
その他の変数との使い分け
活用方法
当月の日付一覧&平日一覧&営業日一覧を出力する
第一引数はレコード型ですが、{Value:値}などで指定すればテーブル型でもテキスト型でも格納できます。
以下の例のようにMatch関数やPatch関数の出力はレコードなので、よくWith関数と組み合わせて使用します。
リバーシを作ってみた
With関数でコードをわかりやすく、パフォーマンスを向上させている例です。(というか使わないと複雑すぎて読めない)
ForAll関数やWith関数は入れ子にすることができますが、その場合はAs演算子を使用するようにしましょう。
コメント