⚠️ 2025年更新:この機能は正式リリースされました
記事執筆時点では裏技的な実装が必要でしたが、現在はCopilot Studioの標準機能として「ループ処理(Foreach)」が正式に追加されています。
コードエディタを開く必要はなく、リスト変数を選択するだけで実装可能です。
※記事末尾の内容は、正式リリース前の実装ログとして、またYAML構造の理解のために残しています。
記事執筆時点では裏技的な実装が必要でしたが、現在はCopilot Studioの標準機能として「ループ処理(Foreach)」が正式に追加されています。
コードエディタを開く必要はなく、リスト変数を選択するだけで実装可能です。
※記事末尾の内容は、正式リリース前の実装ログとして、またYAML構造の理解のために残しています。
2025年に新しく追加された方法
やりたいこと
会話の中でこのようなテーブルや配列をループで回したいときの話。


構築
[変数管理]の[リストの管理]から[リスト全体をループする]を選ぶ。


[ループする項目]にループ対象のテーブルや配列を設定すれば構築完了。ちなみにループの中では「値」と「インデックス」の両方を使用できるのが便利。


動作確認
このトピックを起動するとこんな感じでループが実現できている。


以下、過去の情報のアーカイブ
【アーカイブ】コードエディタによる実装方法(旧仕様)
Copilot Studioにおけるループについて調べていたらおもしろい記事を見つけたので紹介。
会話の中でループを作る方法
Copilot Studioにおいて、会話内のループを構築する場合は「手順に移動」ノードを使用していた。
これはCとかのgoto文と同じ機能で、この「手順に移動」を使用して、前のステップに戻ることでループをつくっていた。
ただ、今回見つけたこちらの記事にトピック内でForeachループを使うことができる、と書いてあったので試してみた。
![]()
Top Content on LinkedIn
Explore top LinkedIn content from members on a range of professional topics.
構築
今回はサンプルとして指定した数のループを実行するトピックを構築。
まずは適当なトリガーを用意して、ループする回数をスロット充填で取得する。


そしたらForeachを追加するためコードエディタを開いて、


actionsの中にkindとしてForeachを追加する。(YAML記法っぽい)


idは適当でよいみたいなので、適当なIDを採番してコードエディタを閉じる。


するとフローにForeachループが追加される。


指定した数のループを実行するため、[ループする項目]にはSequence関数を追加して、


ループの各項目が入る[ループ値の変数]には新しい変数を追加。


※プロパティからループのインデックスも取得可能。


最後に現在の数字をメッセージで送信するノードを追加したいんだけど、[変数の選択]からは変数iにアクセスできないよう。


そこで再度コードエディタを開いて、関数と変数を直接入力する。


フローに戻って関数が入力されていれば完成。


動作確認
こんな感じで回数を指定すると、トピック内でループが実行される。


Power Virtual Agent時代の名残なのか、またはCopilot Studioにおいて今後追加する機能なのかはわからないけど、コードエディタからであればForeachを使うことができる。
コメント