【SharePoint】Q&A リストを作成する

ビューの書式設定を利用し、以下のようなQ&Aリストを作成する方法を記載します。

リスト作成

以下のリストを作成します。

ビューの書式設定

作成したリストのビューの書式設定に、以下のコードを入力します。

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/row-formatting.schema.json",
  "hideColumnHeader": true,
  "hideSelection": true,
  "rowFormatter": {
    "elmType": "div",
    "style": {
      "width": "600px",
      "margin": "10px 0px 30px 20px",
      "border-style": "none"
    },
    "children": [
      {
        "elmType": "div",
        "style": {
          "display": "flex",
          "flex-direction": "column",
          "box-shadow": "2px 3px 5px gray",
          "width": "100%"
        },
        "attributes": {
          "class": "ms-bgColor-themeLighterAlt"
        },
        "children": [
          {
            "elmType": "div",
            "style": {
              "display": "flex",
              "box-sizing": "border-box",
              "padding": "2px 5px"
            },
            "attributes": {
              "class": "ms-bgColor-themePrimary ms-fontColor-white"
            },
            "children": [
              {
                "elmType": "div",
                "style": {
                  "font-size": "20px",
                  "padding-left": "10px",
                  "padding-top": "2px"
                },
                "attributes": {
                  "iconName": "FeedbackRequestSolid"
                }
              },
              {
                "elmType": "div",
                "txtContent": "[$Title]",
                "style": {
                  "padding": "2px 10px",
                  "font-size": "15px"
                },
                "attributes": {
                  "class": "ms-fontSize-s ms-fontWeight-bold"
                }
              }
            ]
          },
          {
            "elmType": "div",
            "txtContent": "[$Question]",
            "style": {
              "width": "100%",
              "box-sizing": "border-box",
              "padding": "15px 20px 0px 20px"
            },
            "attributes": {
              "class": "ms-fontSize-l ms-fontWeight-bold ms-fontColor-neutralPrimary"
            }
          },
          {
            "elmType": "div",
            "style": {
              "display": "flex",
              "justify-content": "center",
              "box-sizing": "border-box",
              "margin-top": "10px",
              "margin-bottom": "15px"
            },
            "children": [
              {
                "elmType": "div",
                "txtContent": "回答を見る",
                "style": {
                  "padding": "2px 20px",
                  "font-size": "20px",
                  "color": "white",
                  "border-radius": "20px",
                  "cursor": "pointer"
                },
                "attributes": {
                  "class": "ms-fontWeight-bold ms-bgColor-themePrimary ms-bgColor-themeLight--hover"
                },
                "customCardProps": {
                  "openOnEvent": "click",
                  "directionalHint": "rightCenter",
                  "isBeakVisible": true,
                  "formatter": {
                    "elmType": "div",
                    "style": {
                      "display": "flex",
                      "flex-direction": "column",
                      "width": "450px",
                      "max-height": "400px"
                    },
                    "children": [
                      {
                        "elmType": "div",
                        "txtContent": " Answer",
                        "style": {
                          "font-size": "20px",
                          "padding": "20px"
                        },
                        "attributes": {
                          "iconName": "SkypeCircleCheck",
                          "class": "ms-fontWeight-bold ms-fontColor-themePrimary"
                        }
                      },
                      {
                        "elmType": "div",
                        "txtContent": "[$Answer]",
                        "style": {
                          "font-size": "18px",
                          "width": "90%",
                          "padding-bottom": "15px"
                        }
                      }
                    ]
                  }
                }
              }
            ]
          }
        ]
      }
    ]
  }
}

以上で、作成完了です!

補足:customCardProps について

2024/01/04 追記: ハイパーリンク付きの Q&A

回答にハイパーリンクを表示する書式設定も作成してみました。

書式設定の JSON は、次の通りです。

上記の書式設定を利用する場合は、列の内部名が Link のハイパーリンク列を別途作成ください。