
SharePoint のリスト、およびドキュメントライブラリには、評価機能を追加することができます。 評価方法は、「いいね!」と「星評価」の 2 種類となっています。
アップデート により、この評価の値を書式設定で利用できるようになったので、いくつかサンプルを作成してみました。
以下、評価機能の設定方法と、書式設定のサンプルを記載します。
評価機能の有効化
チームサイトであれば評価機能をデフォルトで利用できますが、コミュニケーションサイトではデフォルトのままでは利用できません。
コミュニケーションサイトで評価機能を利用するには、PowerShell 等で機能を有効化する必要があります。(※2021/10/22 時点では、画面上で有効化することはできない)
以下は PnP PowerShell で評価機能を有効化する例になります。
$targetURL = "https://tenent.sharepoint.com/sites/CommunicationSite" Connect-PnPOnline -Url $targetURL -Interactive Enable-PnPFeature –identity 915c240e-a6cc-49b8-8b2c-0bff8b553ed3 -Scope site Disconnect-PnPOnline
リスト(ドキュメントライブラリ)に評価機能を追加する
評価機能は、次の手順でリスト(ドキュメントライブラリ)に追加することができます。
① リスト(ドキュメントライブラリ)を開く
② [歯車マーク] > [リストの設定] もしくは [ライブラリの設定] をクリック
③ [全般設定] セクションにある [評価の設定] をクリック

④ [評価の設定] → [はい] を選択
⑤ [このリストに対し、どの投票または評価エクスペリエンスを有効にしますか?] → [いいね!] もしくは [星評価] を選択
⑥ [OK] ボタンをクリック

以上の設定が完了すると、一覧画面上にいいねボタン、もしくは星評価が表示されます。

ビューの書式設定
以下からは、評価の値を利用したビューの書式設定のサンプルになります。
ビューの書式設定のサンプルを利用するには、次の画像の場所に掲載されている JSON をコピー & ペーストしてください。

自分が いいね! した行の背景色を変えるサンプル

{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
"additionalRowClass": "=if(indexOf([$LikedBy.email] , @me) >= 0 , 'ms-bgColor-themeLighter' , '')"
}
いいね! の数に応じて行の背景色を変えるサンプル

次のサンプルコードは、いいね!が 2 以上だった場合、行の背景色が変わるようになっています。
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
"additionalRowClass": "=if([$LikesCount] >= 2 , 'ms-bgColor-themeLighter' , '')"
}
星評価の平均評価に応じて行の背景色を変えるサンプル

次のサンプルコードは、平均評価が 4 以上だった場合、行の背景色が変わるようになっています。
{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
"additionalRowClass": "=if([$AverageRating] >= 4 , 'ms-bgColor-themeLighter' , '')"
}
列の書式設定
いいね! したユーザーの一覧を表示するサンプル

任意の列名の 1 行テキストを定義し、その列の書式設定に次の JSON を設定してください。

{
"$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
"elmType": "div",
"style": {
"margin": "3px"
},
"children": [
{
"elmType": "div",
"style": {
"padding": "5px 10px 5px 10px",
"cursor": "pointer",
"white-space": "nowrap",
"border-radius": "5px",
"display": "flex",
"align-items": "center"
},
"attributes": {
"class": "ms-bgColor-themePrimary ms-bgColor-themeTertiary--hover ms-fontColor-white"
},
"children": [
{
"elmType": "span",
"style": {
"font-size": "15px",
"margin-right": "5px"
},
"attributes": {
"iconName": "Contact"
}
},
{
"elmType": "span",
"txtContent": "いいね! したユーザー"
}
],
"customCardProps": {
"openOnEvent": "hover",
"directionalHint": "rightCenter",
"isBeakVisible": true,
"formatter": {
"elmType": "div",
"style": {
"max-height": "300px",
"padding": "5px 20px 5px 20px",
"display": "flex",
"flex-direction": "column"
},
"children": [
{
"elmType": "div",
"txtContent": "= if([$LikesCount] == '' , '0' , [$LikesCount]) + ' 件の いいね!'",
"style": {
"padding": "10px",
"font-weight": "bold",
"font-size": "15px"
}
},
{
"elmType": "div",
"children": [
{
"forEach": "personIterator in [$LikedBy]",
"elmType": "div",
"style": {
"margin-bottom": "5px",
"display": "flex",
"align-items": "center"
},
"children": [
{
"elmType": "img",
"style": {
"width": "32px",
"height": "32px",
"border-radius": "50%",
"margin-right": "5px"
},
"attributes": {
"src": "=getUserImage([$personIterator.email], 'S')",
"title": "[$personIterator.title]"
}
},
{
"elmType": "span",
"txtContent": "[$personIterator.title]"
}
]
}
]
}
]
}
}
}
]
}