概要
SharePoint Online の List で、非表示の列の値を、JSON書式設定にて、参照できるようにする方法です。
List の JSON書式設定では、他の列(フィールド)の値を参照したり、表示したりすることができますが、参照先の列を非表示にしてしまうと、その列の値が参照できなくなってしまいます。
でも、参照はしたいという時がありますよね。
実は、できます。
実施例
まず以下のような構成のリストを作ったとします。
この例では、JSON書式設定を使って非表示の列(隠したい列)の値を取得して表示しています。
※「非表示の列を参照」という列で、「秘密の情報1」などの値を表示するように構成しています。
この構成で、参照先の列を非表示にしてしまうと、通常は、以下のようにその値を取得することができなくなります。(赤枠の個所のように値が空になってしまいます)
ここで、ある設定をすると、非表示の列の値を取得できるようになります。
設定方法
実は、ビューの設定で、非表示にしたい列に対して、何らかのフィルタをかけると、非表示にしても参照できるようになります。
フィルタの条件は何でもOKです。
例えば、「次の値に等しくない」の条件で、値は「空白」とかにしておけばいいかと思います。
応用例
上記はあまり実用的な例ではありませんが、この方法を応用すると、例えば、以下の成績表ように、本人にだけ、自分の氏名が表示され、本人以外の氏名は非表示にするようなリストを作ることができます。
氏名の列には、氏名のデータは入っていないので、この列でフィルタなどをかけて氏名を探り当てることなどはできません。エクスポートしても他の人の氏名データは出力されません。
管理者の画面
実際は、以下のように、非表示の列に氏名などのデータが保存されています。
上記の JSON書式の内容
※ EmailText の列に各人のメールアドレス、HiddenText に氏名が設定されている場合の例です。
フィルタ設定で条件に含めると、内部的に参照できるようになるという、ちょっと変な仕様ですが、お試しください。
フィルタ以外でも、何らかの条件設定(並べ替えなど)で対象の列を指定したら、同様に参照できるようになります。
注意
- 上記は、正式にサポートされた方法ではありません。今後、仕様変更などにより意図した動作をしなくなる場合があります。ご了承の上、ご利用ください。
- 非表示にしたからと言って、情報を完全に隠匿できるわけではありません。秘密性の高い情報を保存・非表示にしたい場合は、適切なセキュリティ対策を実施ください。
おまけ
デザインモード(JSON編集ではなくGUIで設定)の場合でも同様に参照できるようになります。
以下は、値が「秘密の情報1」の行だけを緑色にする例です。
※設定の際は、一旦、対象の列を「表示」させから設定する必要があります。そうしないと、対象の列が選択肢に出てきません。設定した後は「非表示」に戻すのをお忘れなく😅