SharePoint リストの列の書式設定でリンクを活性にする


はじめに

SharePoint リストには、JSON 形式で列の書式設定をカスタマイズする機能があります。
列の書式設定で SharePoint をカスタマイズする
公式ドキュメントにいろいろ書いていますが、読むのが面倒な方のために「1行テキスト」型の列をリンク化する方法をご紹介します。

1つの列の値を使ってリンク化

リンク化したい列の列名を右クリックし「列の設定>この列の書式設定」を開いてください。
ここに JSON を貼り付ければ設定完了です。

JSON はこちらです。

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "a",
  "txtContent": "@currentField",
  "attributes": {
    "href": "@currentField",
    "target": "_blank"
  }
}

書式を設定しようとしている列の値を @currentField で参照しています。

他の列の値を使ってリンク化

発展形として、別の列の値と組み合わせてリンクを生成することもできます。
以下では URL と検索ワードを組み合わせて検索結果ページのリンクを作成しています。

JSON はこちらです。

{
  "$schema": "https://developer.microsoft.com/json-schemas/sp/v2/column-formatting.schema.json",
  "elmType": "a",
  "txtContent": "@currentField",
  "attributes": {
    "href": "=if([$value]=='https://www.yahoo.co.jp/', 'https://search.yahoo.co.jp/search?p=' + @currentField, 'https://www.google.com/search?q=' + @currentField)",
    "target": "_blank"
  }
}

Excel ライクな if 文が書けます。
また [$列名] で別の列の値を参照できます(この場合は「URL」列)。
列名は、画面に表示されている値ではなく、その列の値でフィルターを設定した際の URL の FilterField1= の後ろの値です。

以上