Power Automateで長い文字列のハイパーリンクをSharePointListsに入力できないときの対処法

# やりたいこと

<strong>Power Automateを使ってSharePointListsにURLをハイパーリンクで転記したい！</strong>

というケースはよくあると思います。
そんなときは基本的にはSharePoint Listsを列を選択する際「ハイパーリンク」を設定すればOKですが、実はこれ、制限があるんですよね。

# 事象

SharePoint Listsの列を追加する際、列の種類を選択できますね。ハイパーリンクというものがあるのでこれを追加してみましょう。

「ハイパーリンク」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/5965603d-e32a-4d37-95fd-b604da539ddd.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/774892f8-4b31-49eb-b00f-86bdb7eacffb.png)

「既定のハイパーリンク」列が追加されました！
早速なにかリンクを入力してみましょう。

![スクリーンショット 2025-02-19 172748.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/639d949e-902e-41db-97b9-c9e78f9119e8.png)

::: note alert 
URLには255を超える文字を含めることはできません
:::

上記のようなエラーが出てしまいました。
255文字以外のURLであることが保証されている！というのであればそれでも良いのですが、なかなかそんなことはないですよね。そして開発する側としては安定性は担保しておきたい。では255を超えるURLをハイパーリンクとして設定したい場合はどうすればよいのでしょう。

# 解決策
実はこれ、案外簡単に解消できます。
最初の列の設定時に「ハイパーリンク」ではなく、「複数行のテキスト」を使用します。

「複数行テキスト」を選択して列を作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/b5d58bd8-095d-4071-b944-86c27686a7de.png)

今回は

<strong>「拡張リッチテキストを使用（画像、表、ハイパーリンクを含むリッチテキスト）」
「既存のテキストに変更を追加する」
「この列に情報が含まれている必要があります」</strong>

を「いいえ」で設定します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/0862a837-4e4c-4491-9c3f-08d1ff825c13.png)


「複数行のハイパーリンク」という名前の列にしてみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/915a6dfa-a9d6-4fae-a95c-f982e0e2c1de.png)

ただ、これだけではまだ足りません。試しに[https://google.com]という値を入力しましたがリンクになりませんでした。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/59e5dd6f-9440-4318-a15e-b96bdeca4dbe.png)

まだ「ここに入力されるテキストをリンクにしてください」という指示を与えていないからですね。
この列に入力された値をハイパーリンクにするには、画面右上の歯車マーク>「リストの設定」をクリックします

「リストの設定」をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/92ece53f-92bf-46a7-ba28-f855911c12ea.png)

リストの詳細な設定ができる画面
![スクリーンショット 2025-02-19 174631.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/a8bac593-145d-42ea-9561-d500ea222797.png)


リストの詳細設定画面が表示されましたね。
ここで操作したい列を選択します。今回は「複数行のハイパーリンク」列を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/e4dd3c09-9a3a-413c-b17d-04743a311032.png)

すると上図のような設定画面に辿り着きます。
一番下に「列の書式設定」という項目がありますね。
ここでJSON形式で詳細な書式設定をすることができます。ここを編集することで、「複数行のハイパーリンク」列に入力された値はURLなんで、ハイパーリンクにしてくださいね、という指定をすることができます。

<strong>「いやJSONってなに？」</strong>
という方ももちろんいらっしゃると思います。安心してください。今回は何も考えずにコピペするだけです。JSONについてのご説明はまたの機会、もしくは他の方にお譲りするとして、とにかく以下の文字列をコピペしましょう。

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

:::note 
中のコードを変更する必要はありません
:::

こんな感じ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/53346237-16d1-492d-9a93-d139aec59cea.png)

コピペしたら、画面右下の「OK」を押して、リストの画面に戻りましょう。
すると・・・

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3939914/c8c3acda-d4ad-4d1c-91c2-0156b585e9dc.png)

しっかりハイパーリンクになってましたね！
これで256文字以上のURLを入力してもしっかりハイパーリンクになるようになりました。

それほど難しくないので、開発時にURLをハイパーリンクで表現したいような場合は標準の「ハイパーリンク」ではなく、「複数行テキスト」を使用したうえでJSONの書式設定をするように心がけましょう。