こんにちは!
M365(特にSharePoint,Power Automate,Power Apps,Teams)に関する記事やちょっとした小ネタなどをご紹介していきます。
はじめに
今さらではありますが、SharePoint Online の機能について改めて情報収集していたところ、「あれ、こんな機能があったんだ!?」と個人的に少しテンションが上がった機能があったので、実際に検証してみました。
SharePointリストに対する思い込み
SharePointリストの「新しいアイテム(入力フォーム)」画面で、これまで出来ないと思っていたことの1つに、「ある入力項目で特定の値を選択したときだけ、追加の入力項目を表示したい」というものがありました。
Microsoft Forms や Power Appsの登場により、条件分岐あるいは特定条件による項目の表示/非表示などのカスタマイズが出来るようになりましたが、SharePointだけで完結出来る方法は確立されていなかったのではないかなとずっと思いこんでいました。
今回ご紹介する機能ではあまり複雑なものは出来ないかもしれませんが、簡易的なフォームの制御としては使い道があるのではないかなと思い、サンプルフォームを作成してみました。
サンプルの作成
ここから、以下の条件で表示制御を行う準備をしていきたいと思います。
①申請区分が「変更・取り下げ」の場合に、変更申請理由の記入欄を表示させる
②取得対象が「代理申請」の場合に、実際に休暇を取得するユーザーの入力欄を表示させる
(1)条件によって追加表示させる列の作成
(2)列の表示条件の設定
条件の設定は、以下の手順で行います。
1.新しいアイテム画面を開き、右上のフォームの編集から「列の編集」をクリックします。
2.表示制御を行いたい列のアクションメニューから「条件式の編集」をクリックします。
3.数式の欄に条件式を入力し、保存をクリックします。
今回は申請区分列の選択肢で「変更・取り下げ」が選択された場合にのみ列を表示させたいので、下図のように入力しています。
=if([$内部名]==’条件値’,’true’,’false’)
※true=列を表示、false=列を非表示
4.同様に、「休暇取得者名」列にも条件式を設定します。
ここでは、取得対象列の選択肢で「代理申請」が選択された場合にのみ列を表示させるようにします。
5.設定が保存されると対象の列がグレーアウトされ、表示の条件を満たさない場合は、入力フォームから対象の列が非表示となります。
条件式で条件に利用する列は、入力フォーム上に表示されている必要があります。
※ 今回の場合、上図の「ステータス」や「承認コメント」のようにフォームから非表示にしている列の値を条件に指定しても、制御が適用されませんので注意が必要です。
6.最後に、フォーム列の編集画面上部の「保存」をクリックして設定を保存します。
動作確認
設定したフォームで動作を確認してみます。
フォームを開いた直後の画面と、条件が一致するように選択肢を変更した場合の画面はそれぞれ以下のようになります。
アイテムを登録した後の閲覧画面および編集画面でも、列の表示/非表示は保持されます。
まとめ
今回は選択肢に含まれる文字列を条件に、表示/非表示を制御する検証を行いましたが、これ以外にも数字や日付などを条件にした制御も可能なようです。
※ 詳細は参考リンクをご覧ください。
これ使えそう!と思った方はぜひ試してみてください。
参考リンク
リスト フォームまたはライブラリ フォームの列の表示/非表示を切り替える
https://learn.microsoft.com/ja-jp/sharepoint/dev/declarative-customization/list-form-conditional-show-hide