【List Formatting】フォーム内の特定のフィールドを読み取り専用にする

SharePoint および Microsoft Lists のリストにおいて、フォーム内の特定のフィールドを読み取り専用に設定できるようになっていました。

設定方法やユースケースなどの詳細は、次の公式ドキュメントを参照ください。

learn.microsoft.com

この設定をすると、対象のフィールドは

  • 新しいアイテムフォームおよびすべて編集モードでは非表示になります。
  • 編集フォームではフィールドタイトルに「読み取り専用」と表示され、クリックしても値を変更できなくなります。

公式ドキュメント に沿って、「新しいアイテムフォーム」「すべて編集モード」「編集フォーム」と記載させていただきました。個人的に勝手に「新しいアイテムフォーム」を「新規フォーム」、「すべて編集モード」を「編集フォーム」、「編集フォーム」を「表示フォーム」と昔から呼んでしまっていました(^_^;)

補足事項・注意点

あくまでも "フォーム内でのみ" 読み取り専用にする設定である

この設定は、あくまでも特定のフィールドをフォーム内でのみ読み取り専用にする設定です。グリッドビューや Power Automate など、フォーム以外の方法では値の変更が可能なので、ご注意ください。

※リストの設定で、グリッドビューの編集を無効にすることも可能です。

「列の編集」からフォームを編集すると、読み取り専用の設定が解除されてしまう(2025/07/10 時点)

フォーム右上のアイコン >「列の編集」から、フォーム内の列の表示順や、表示・非表示を調整できます。

このとき、変更を保存すると読み取り専用の設定が解除されてしまうため、ご注意ください。

https://github.com/tecchan1107/mynote365/blob/main/images/list-form-fieldsettings.gif?raw=true

これはおそらく、保存前後でフォーム Body の JSON が置き換わってしまう影響かと思われます。

本件、バグかは不明ですが次の Issue を投稿しておきました。

github.com