Microsoft Lists で日次タスクや ToDo を管理していると、「完了したタスクだけを別リストに退避して元リストを軽くしたい」というニーズが必ず出てきます。Power Automate が使えない環境でも、工夫すれば「完了タスクのアーカイブ運用」は十分に実現できます。ここでは、手動と自動の両方からベストプラクティスを整理します。
Microsoft Lists の完了タスクをどう扱うか
Microsoft Lists(SharePoint リスト)は、日々のタスク管理や案件管理にとても便利ですが、そのまま使い続けるとリストがどんどん肥大化していきます。特に、
- 毎日繰り返し登録される日次タスク
- 短期間で完了していく小さな案件
- チェックリストとして使う単発タスク
といった用途では、「完了したタスク」をどのように整理・保管するかが、運用のしやすさとパフォーマンスに直結します。
代表的なニーズは次のようなものです。
- 完了タスクを別リストに移して、元リストは「未完了だけ」を表示したい
- アーカイブ用に履歴は残したいが、日常の画面からは邪魔になってほしくない
- Power Automate が使えない環境でも、最低限のアーカイブは実現したい
以下では、このニーズに対して「手動」「自動」「そもそも移動しない」という 3 つの観点から解決策を整理していきます。
前提:Microsoft Lists と SharePoint の関係
Microsoft Lists は見た目は専用アプリのようですが、実体は SharePoint のリストです。そのため、次のような制約や特徴を持ちます。
- 他リストへの「移動」ボタンが存在しない(UI 標準機能としては不可)
- リスト間で「行まるごとコピー&貼り付け」は基本的に不安定
- 別リストへコピーした場合、ID は引き継がれず新しい ID が採番される
- 添付ファイルはアイテムにぶら下がっているため、そのまま別リストへは移せない
この制約を踏まえたうえで、現実的なアプローチを選んでいくことが大切です。
完了タスクをアーカイブする 3 つのアプローチ
この記事で扱うアプローチをざっくり整理すると、次の 3 つになります。
| アプローチ | 概要 | 向いているケース | Power Automate |
|---|---|---|---|
| 手動コピー+削除 | グリッドビューでセル単位にコピーして別リストへ移す | 件数が少ない/週1・月1でまとめて処理 | 不要 |
| フローで自動アーカイブ | Status=Done になったら自動でアーカイブ用リストにコピーし、元アイテムを削除またはフラグ付け | 件数が多い/人手での移動が負担 | 必要 |
| ビュー分割のみ | 完了タスクを「アーカイブ」ビューで絞り込み、実体は移動しない | Power Automate が使えない/リストを分ける必要は薄い | 不要 |
どれが正解というよりも、組織の規模・権限・件数・運用担当者の負荷を考えて選ぶことが重要です。ここからはそれぞれの具体的な手順と注意点を見ていきます。
Power Automate なしで完了タスクを別リストに移す方法
まず、Power Automate が使えない環境でも確実に実現できる「手動コピー+削除」の方法です。ポイントは、Microsoft Lists の「グリッドビューでの編集」を使って、セル単位でコピーすることです。
事前準備:アーカイブ用リストを作る
最初に、元リストとほぼ同じ列構成を持つ「アーカイブ用リスト」を用意します。
- 元リストと同じサイト内に SharePoint リスト(Microsoft Lists)を作成
- 列名・列の種類(テキスト、選択肢、ユーザー、日付など)をできる限り揃える
- 必要に応じてアーカイブ専用の列を追加
- 完了日時(日時型)… 手動入力でもよいですが自動化を想定して用意
- 元ID(数値またはテキスト)… 元リストの ID を記録しておくための列
特に、選択肢列(Choice)とユーザー列はよくトラブルになりやすいので、次の点をチェックします。
| 列種別 | 確認ポイント |
|---|---|
| 選択肢(Choice) | 候補の値が元リストと完全一致しているか(スペースや大文字小文字も含め) |
| ユーザー/グループ | 同じ「ユーザーとグループ」をソースにしているか、複数選択の設定が一致しているか |
| ルックアップ列 | 同じリストを参照しているか、参照先の列も一致しているか |
完了タスクだけを表示するビューを作成
手動でコピーする前に、元リスト側で「完了タスクだけが表示されるビュー」を作っておくと作業効率が一気に上がります。
- 新しいビューを作成(例:完了タスク(アーカイブ用))
- フィルター条件を ステータス = Done に設定
- 必要に応じて完了日時の降順で並び替える
アーカイブ作業の度にこのビューを開けば、「移すべき行」だけが一覧されます。
グリッドビューでセル単位にコピーする手順
ここが手動アーカイブの肝です。行全体のコピー&ペーストは不安定なため、セル単位でコピーする運用が現実的です。
- 元リストを開き、「完了タスク(アーカイブ用)」ビューを表示する。
- 画面上部の 「グリッドビューでの編集」 をクリック。
- 別タブまたは別ウィンドウで、アーカイブ用リストを開き、こちらも 「グリッドビューでの編集」 に切り替える。
- アーカイブ用リストの列の表示順を元リストと揃える(列をドラッグ&ドロップで並べ替え)。
- 元リストのコピーしたい行のセルをドラッグして範囲選択し、
Ctrl + Cでコピー。 - アーカイブ用リスト側で新規行の先頭セルを選択し、
Ctrl + Vで貼り付け。 - 値が正しく貼り付けられているかを一通り確認する。
1 件ずつ処理してもよいですし、列構成が整っていれば複数行をまとめてコピー&ペーストすることもできます。ただし、貼り付け先の行数を超えるとエラーになったり、意図しない列に入ることがあるため、最初は少なめの件数でテストしてから本番運用に移すのがおすすめです。
添付ファイルがある場合の扱い
標準の UI だけでは、添付ファイルをリスト間で自動コピーすることはできません。そのため、手動アーカイブの場合は次のような流れになります。
- 元リストのアイテムを開き、添付ファイルをローカルにダウンロード。
- アーカイブ用リスト側で該当アイテムを開き、添付ファイルとしてアップロードし直す。
- 元リスト側のアイテムを削除する前に、添付の移行が完了しているか確認。
添付ファイルが大量にある場合は手間がかかるため、添付ファイルの保存先を最初から SharePoint ライブラリに分離しておくという設計も検討すると良いでしょう(リストにはライブラリの URL を保存するだけにする)。
コピー完了後に元リストから削除する
アーカイブ側へのコピーと確認が終わったら、元リストから該当行を削除します。
- 削除前に、アーカイブ側のアイテムに「元ID」列を用意して ID を控えておくと後で追跡しやすい
- 他のリストからルックアップで参照されている場合は、削除による影響がないか事前に確認する
監査やコンプライアンスの観点から「削除したくない」場合は、削除の代わりに次のような運用も可能です。
- 元リスト側に アーカイブ済み チェックボックスを追加
- アーカイブ済み=はい のアイテムは、通常のビューからは非表示にする
少量向けの運用例
手動アーカイブは、次のような運用だと現実的です。
- 週 1 回、または月末に「完了タスク(アーカイブ用)」ビューを開く
- その期間に完了したタスクをまとめてコピー&貼り付け
- 添付ファイルが必要なものだけ手動で移行し、最後に元リストから削除
チームの人数が少ない場合や完了件数がそこまで多くない場合は、この方法だけでも十分にリストをスリムに保てます。
Power Automate が使える場合の自動アーカイブフロー
次に、Power Automate が使える環境向けに、「完了したら自動でアーカイブリストへコピーする」フローの設計図を解説します。基本的な流れは以下の通りです。
- トリガー:元リストのアイテムが作成または変更されたとき
- 条件:ステータス列が Done になったときだけ処理を実行
- アクション:アーカイブ用リストに新しいアイテムを作成
- (任意)添付ファイルを取得してアーカイブ側へ追加
- (任意)元リスト側のアイテムを削除、または「アーカイブ済み」フラグを立てる
トリガー設定とトリガー条件
Power Automate では、SharePoint コネクタの 「項目が作成されたとき」 または 「項目が作成または変更されたとき」 をトリガーにします。ステータス列の更新でフローを動かしたい場合は、後者がおすすめです。
不要な実行を減らすために、トリガー側に条件を直接書いておくと効率的です。例として、ステータス列の内部名が Status で Choice 列の場合、トリガー条件に次の式を指定します。
@equals(triggerOutputs()?['body/Status']?['Value'],'Done')
これにより、「ステータスが Done になったときだけ」フローが起動するようになります。
アーカイブ用リストへアイテムを作成する
次に、SharePoint の 「項目の作成(Create item)」 アクションで、アーカイブ用リストにアイテムを作成します。マッピングのポイントは以下の通りです。
- タイトル、説明、担当者、期限など、元リストの各列を 1 対 1 で対応させる
- Choice 列は、値をそのまま渡せるように候補が一致しているか事前に確認する
- ユーザー列は、クレーム値(Claims)or メールアドレスを渡す必要がある場合があるので、トリガーから取得できるプロパティを確認
- アーカイブ用リスト独自の列(例:完了日時、元ID)は、フロー内で計算して渡す
完了日時を自動で記録したい場合は、次のようにします。
- Compose アクションで
utcNow()を評価 - その結果をアーカイブ用リストの 完了日時 列にマッピング
添付ファイルをコピーする
添付ファイルも含めてアーカイブしたい場合は、少しだけ手順が増えます。
- 元リストに対して 「Get attachments」 アクションを実行し、添付の一覧を取得
- その結果に対して 「Apply to each」 を設定
- ループ内で 「Get attachment content」 を呼び出し、バイナリを取得
- アーカイブ用リストに対して 「Add attachment」 アクションを使い、ファイル名とコンテンツを渡す
このとき、アーカイブ側のアイテム ID が必要になるため、「項目の作成」アクションの出力から ID を変数やコンポーズで保持しておき、それを使って添付を追加します。
元アイテムの削除 or フラグ付け
アーカイブへのコピーと添付のコピーが正常に終わったら、元リストのアイテムをどう扱うかを決めます。
- 削除するパターン
- SharePoint の 「項目の削除(Delete item)」 アクションで削除
- 監査ログやバックアップで後から復旧できることを確認しておく
- 削除せずにフラグだけ立てるパターン
- 元リストに「アーカイブ済み」チェックボックス列を用意
- フローでその列を「はい」に更新するだけにし、普段のビューからは非表示にする
運用開始直後は、いきなり削除するのではなく、一定期間は「複製のみ」で動かして様子を見るのが安全です。
無限ループと実行回数を抑える工夫
SharePoint リストをトリガーにしたフローでよくあるのが、「自分自身の更新で再度フローが動いてしまう」という無限ループです。以下のような工夫で回避できます。
- トリガー対象のリストを「元リストのみに限定」し、アーカイブ用リストはトリガーから外す
- トリガー条件で「ステータスが Done 以外のときは起動しない」と明示する
- フロー内でステータスを変更する場合は、「すでに Done のアイテムは更新しない」よう分岐を入れる
また、実行回数を抑えるために、次のような設計も検討できます。
- トリガーは「項目が作成されたとき」+「完了用のボタン(列)が押されたときだけ」動くようにする
- 夜間に 1 回だけ実行されるスケジュールフローで、「ステータス=Done のアイテムをまとめてアーカイブ」する
そもそも「移動しない」でスリム化する代替策
ここまで「別リストに移す」ことを前提に話してきましたが、実はリストを物理的に分けなくても運用上はほぼ同じ効果を得られるケースも多くあります。特に Power Automate が使えない環境では、次のような工夫が非常に有効です。
ビュー分割で「アクティブ」と「アーカイブ」を分ける
もっとも簡単で効果的なのが、ビューを 2 つに分ける方法です。
- アクティブビュー:フィルター条件を「ステータス ≠ Done」にする
- アーカイブビュー:フィルター条件を「ステータス = Done」にする
これだけで、ユーザーから見える画面は次のようになります。
- 普段は「アクティブビュー」だけ使えば、完了済みが一切目に入らない
- 過去の履歴を確認したいときは、「アーカイブビュー」に切り替えればすぐに参照できる
アイテム数が増える場合は、インデックス列を設定しておくと、SharePoint のしきい値(5000 アイテム)に対する耐性が上がります。代表的なインデックス対象は次の通りです。
- ステータス列(Done / In Progress など)
- 完了日時列
- 担当者列
完了日時列を活用して期間でフィルター
完了日時を手動 or 自動で入れるようにしておくと、「一定期間より前のタスクだけをアーカイブビューに表示する」といった高度なフィルターが可能になります。
- 例:完了日時が「今から 90 日前より前」のタスクだけをアーカイブビューに表示
- 例:完了日時が「先月」のタスクだけを別のビューにまとめる
こうすることで、「最近の完了タスク」と「古めの完了タスク」を画面上で分離できるため、日々の見通しがさらによくなります。
Power BI や Excel でレポートする
物理的なリストの分割にこだわらず、レポート用途は Power BI や Excel(Power Query)に任せてしまうのも有効です。
- Microsoft Lists / SharePoint リストを Power BI のデータソースとして接続
- 完了タスクの件数、担当者別の負荷、期間別のトレンドをレポート化
- ダッシュボードとしてチームに共有
こうした構成にすると、「アーカイブリストは純粋な履歴保管」「分析は BI ツール」という役割分担にでき、長期運用でもスケールしやすくなります。
よくある落とし穴と対策
完了タスクを別リストに移す運用では、次のようなトラブルがよく発生します。それぞれの対策も合わせてまとめておきます。
| 落とし穴 | 症状 | 対策 |
|---|---|---|
| 行まるごとコピペ | リスト間でコピーすると一部の列がズレる/貼り付けに失敗 | グリッドビューでセル単位のコピー&ペーストを前提にする |
| 列定義の不一致 | 貼り付け時にエラーが出たり、フローで項目作成が失敗する | 列名・列の種類・必須設定・選択肢がアーカイブ側と完全に一致するよう事前に揃える |
| 参照列・ユーザー列 | 表示名はコピーできたように見えても内部的には参照が壊れている | ルックアップやユーザー列は ID/クレーム値に注意し、貼り付け後は目視確認する |
| 添付ファイル | アーカイブ側に添付がコピーされていない/リンク切れになる | 手動運用では再アップロードを前提にし、自動化では「添付取得→コンテンツ取得→追加」の流れを組む |
| ID の継承 | 元リストの ID で検索しようとしても見つからない | アーカイブ側に「元ID」列を作り、元の ID をコピーしておく |
| 他リストからの参照 | ルックアップ先のアイテムを削除してしまい、別リストのデータが壊れる | 関係するリストを洗い出し、参照されているリストの項目を安易に削除しない |
すぐに使えるチェックリスト
実際に運用を始める前に、次の項目をチェックしておくとトラブルをかなり防げます。
- 両リストの列名・順序・データ型・選択肢が一致している
- アーカイブ先に「完了日時」「元ID」などの補助列を用意している
- 手動の場合、両方のリストをグリッドビューにしてセル単位でコピーする手順を決めている
- 自動化する場合、トリガー条件と無限ループ対策をきちんと設計している
- 添付ファイルの扱い方針(不要/手動で移行/フローで自動コピー)を決めている
シナリオ別おすすめパターン
最後に、典型的なシナリオ別におすすめパターンをまとめます。
| シナリオ | 特徴 | おすすめ構成 |
|---|---|---|
| 小規模チームの日次タスク | 1 日あたりの完了件数は数十件以内。Power Automate は未導入。 | ビュー分割(アクティブ/アーカイブ)をまず導入 月末に手動でグリッドコピー→アーカイブリストへ移動 |
| 中規模プロジェクトのタスク管理 | 複数メンバーが更新。完了タスクの件数が多め。 | Power Automate で「ステータス=Done で自動アーカイブ」フローを構築 最初のうちは元アイテムを削除せず、アーカイブ側に複製だけ作る |
| 監査が厳しい業務(障害対応記録など) | 履歴を消せない/監査ログの要件がある。 | 元リストのアイテムは削除せず「アーカイブ済み」フラグで制御 別途 Power BI などで完了タスクのレポートを作成 |
まとめ:まずは「ビュー+手動」から、将来は自動化へ
Microsoft Lists の完了タスクを別リストにアーカイブしたい場合、いきなり完璧な自動化を目指す必要はありません。
- Power Automate が使えない場合:ビュー分割+グリッドビューでの手動コピーがもっとも現実的
- Power Automate が使える場合:完了時にアーカイブリストへ自動コピーし、安定したら削除まで自動化
- いずれのパターンでも:列定義の一致、添付ファイルの扱い、ID の追跡(元ID 列)が成功のポイント
まずは小さな範囲で試しながら、自組織の運用に合った方法を見つけていくのがおすすめです。Microsoft Lists と SharePoint リストの特性を理解しておけば、完了タスクのアーカイブ運用は決して難しくありません。

コメント