6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Forms の特殊文字が入った複数選択の回答を SharePoint Lists に転記する

Last updated at Posted at 2026-02-05

はじめに

ごきげんよう、百合宮桜(Miyu)です。
以前投稿した記事に対して「選択肢の文字列に [ や " が含まれていると、replace 関数では意図しない変換が起きる」というフィードバックをいただきました(おいしみさん、ありがとうございます)。

Forms では複数選択形式の回答が テキスト で返ってくるため、特殊文字を含んだ選択肢では期待通りの処理ができないコトがあります。
この記事では、特殊文字を含んだ複数選択の回答を Power Automate で扱い、最終的に SharePoint Lists にカンマ区切りの文字列で正しく登録する方法 を紹介します。
これからお伝えする方法は配列を理解する必要があるので、初心者の方には少しムズカシイです。なので初心者の方は Forms の選択肢の値に [ や " を含まないようにするのが1番です。どうしても [ や " を入れたい時だけ以下の方法をお使いください。

特殊文字が含まれると何が問題になるのか

Forms の複数選択の回答は

image.png

Power Automate では以下のようなテキストで取得されます。

["パンダ[シロクロ]","ネコ[かわいい]"]

image.png

replace 関数を使って、配列化しようとすると、選択肢内にある [ や " まで置き換えられてしまい、Forms の選択肢とは異なる文字列になります。

image.png

解決方法:JSON 関数で配列に変換して処理する

①応答の詳細を取得するアクションで得た複数選択の回答を JSON 関数 を使って、配列化します

image.png

JSON(outputs('応答の詳細を取得する')?['body/設問Id'])

image.png

②JOIN 関数でカンマ区切りの文字列にする

今回のケースは選ばれた選択肢をカンマ区切りの文字列として、SharePoint Lists に転記したいという要件です。

image.png

その為、JSON 関数で作った配列を JOIN 関数 でまとめて、カンマ区切りの文字列にします。

JOIN(JSON関数で作った配列,',')

JOIN 関数は配列を指定した区切り記号で結合する関数です。
これで、特殊文字を含んでいても正しく結合された文字列が得られます。

おまけ1:上記処理を1つにまとめる場合

1つの式にまとめたい場合は以下のようになります。

join(
  json(
    outputs('応答の詳細を取得する')?['body/設問Id']
  ),
  ','
)

おまけ2:結合アクションで実現する方法

関数を入れ子で使うのが難しく感じる場合は結合アクションを利用するという方法もあります。
この場合は 元 というパラメーターに

JSON(outputs('応答の詳細を取得する')?['body/設問Id'])

を入れて
次と結合するというパラメーターで区切り記号を指定します。

image.png

パラメーターが分かれているので、関数よりも可視性が高く、メンテナンスをしやすいメリットがあります。

まとめ

いかがでしたか?
特殊文字を含む Forms の複数選択値を扱う場合、テキストのまま処理しようとすると意図しない動作が起こる場合があります。
そのため、

  1. JSON 関数で配列に変換する
  2. JOIN 関数で目的の文字列に結合する

という流れが最も安全で確実です。
要件やスキルレベルに応じて、「関数を使う」「結合アクションを使う」など、やりやすい方法を選んでみてください。どのアプローチでも自分や一緒に開発している人がやりやすければ、それが正解です。
ぜひ様々なアプローチを試してみてくださいね💛

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?