SharePointリストのコピーとは?
SharePointリストのコピーとは、既存のリストの構造(列の設定、ビュー、書式設定など)やデータ(アイテム)を複製することです。
リストをコピーする理由はさまざまです。
似た構造のリストを複数作りたい、テスト用にリストを複製したい、別のサイトにリストを移動したい、バックアップとして保存したいなど、多くの場面で活用できます。
ただし、「リストのコピー」には2つの意味があります。
リストの構造だけをコピー:
列の設定、データ型、ビュー、書式設定などはコピーされますが、実際のデータ(アイテム)はコピーされません。
空のリストが作成されます。
リストの構造とデータをコピー:
列の設定とすべてのアイテムの両方がコピーされます。
完全な複製が作成されます。
目的に応じて、適切な方法を選択することが重要です。
リストの構造だけをコピーする方法
リストの構造(列の設定、ビューなど)だけをコピーし、データは空の状態で新しいリストを作成する方法です。
方法1: 「既存のリストから」機能を使う(推奨)
SharePoint Online の標準機能で、最も簡単な方法です。
手順:
- コピー先のSharePointサイトを開く
- ホーム画面の「+新規」をクリック
- 「リスト」を選択
- 「既存のリストから」をクリック
- 「チームまたはサイトを選択」でコピー元のサイトを選択
- 「リストを選択」でコピー元のリストを選択
- 「次へ」をクリック
- 新しいリストの名前を入力
- 必要に応じて説明を追加
- 「サイトナビゲーションに表示」のチェックボックスを確認
- 「作成」をクリック
コピーされるもの:
- すべての列とそのデータ型
- 列の書式設定
- ビューの設定
- 条件付き書式
- 最初の2つの自動ルール(3つ以上ある場合は手動で追加が必要)
コピーされないもの:
- アイテム(データ)
- アイテムのバージョン履歴
- アイテムの添付ファイル
- 権限設定
- ワークフロー
注意点:
- Microsoft Listsの「マイリスト」からはコピーできません
- 自分がメンバーになっているサイトのリストのみ選択可能
- 同じサイト内でも別サイトでも作成可能
方法2: PowerShellを使う(上級者向け)
PnP PowerShellを使用すると、リストの構造をコピーできます。
前提条件:
- PnP PowerShellがインストールされていること
- SharePoint管理者権限
コマンド例:
# SharePointサイトに接続
Connect-PnPOnline -Url "https://組織名.sharepoint.com/sites/サイト名" -Interactive
# リストをコピー(構造のみ)
Copy-PnPList -Identity "コピー元リスト名" -Title "新しいリスト名"
このコマンドは、列、ビュー、設定をコピーしますが、アイテムはコピーしません。
リストの構造とデータを完全にコピーする方法
リストの構造だけでなく、すべてのアイテム(データ)もコピーする方法です。
方法1: リストテンプレート機能を使う
SharePointの「リストをテンプレートとして保存」機能を使います。
重要な制限:
- テンプレートのサイズは50MBまで
- アイテムの合計容量が50MBを超える場合は使用不可
- カスタムスクリプトが有効になっている必要がある
手順:
ステップ1: テンプレートを作成
- コピー元のリストを開く
- 画面右上の歯車アイコン→「リストの設定」をクリック
- 「権限と管理」セクションから「リストをテンプレートとして保存」をクリック
- ファイル名を入力(拡張子.stpは自動で付加されます)
- テンプレート名を入力(リスト作成時に表示される名前)
- 「コンテンツを含む」にチェックを入れる(これが重要!)
- 「OK」をクリック
テンプレートがリストテンプレートギャラリーに保存されます。
ステップ2: 別サイトにテンプレートを移動(別サイトにコピーする場合)
同じサイト内であれば、この手順は不要です。
- 元のサイトで、歯車アイコン→「サイトの設定」をクリック
- 「Web デザイナー ギャラリー」から「リスト テンプレート」をクリック
- 作成したテンプレートをクリックし、「ダウンロード」
- コピー先のサイトで、同じ手順で「リスト テンプレート」を開く
- 「ファイルのアップロード」からダウンロードしたテンプレートをアップロード
ステップ3: テンプレートから新しいリストを作成
- コピー先のサイトで、歯車アイコン→「サイト コンテンツ」をクリック
- 「+新規」→「アプリ」をクリック
- アプリ一覧から作成したテンプレート名を選択
- 新しいリストの名前を入力
- 「作成」をクリック
リストの構造とすべてのアイテムがコピーされます。
注意点:
- 50MBを超える場合は、この方法は使えません
- 添付ファイルもサイズに含まれます
- バージョン履歴は最新版のみコピーされます
方法2: グリッドビューでコピー&ペースト(少量のアイテム向け)
アイテム数が少ない場合(100件以下が目安)は、Excelのようにコピー&ペーストできます。
手順:
ステップ1: リストの構造をコピー
まず、「既存のリストから」機能で構造だけをコピーします。
ステップ2: アイテムをコピー&ペースト
- コピー元のリストを開く
- すべてのアイテムを表示(スクロールして最後まで読み込む)
- 画面上部の「グリッドビューでの編集」をクリック
- すべての行を選択(チェックボックスにチェック)
- Ctrl+Cでコピー
- コピー先のリストを開く
- 「グリッドビューでの編集」をクリック
- 「+新しいアイテムを追加」をクリック
- 追加した行を選択してCtrl+Vでペースト
- 「グリッドビューの終了」をクリック
注意点:
- デフォルトでは100アイテムまでしか表示されません
- 100件以上ある場合は、最後までスクロールしてすべて読み込む必要があります
- 大量のアイテムがある場合、ペーストに時間がかかります
- 複雑な列タイプ(参照、画像など)は正しくコピーされない場合があります
グリッドビューが表示されない場合:
リストの設定を確認してください。
- 歯車アイコン→「リストの設定」をクリック
- 「詳細設定」をクリック
- 「クイック プロパティの編集」が「はい」になっているか確認
- また、ビューで「グループ化」が設定されていると表示されません
方法3: Excel経由でコピー(簡易的な方法)
Excelを経由してデータをコピーする方法です。
注意:
この方法では、列の種類が正しく保持されない場合があります。
選択肢が1行テキストに変わってしまうなど、データ型の情報が失われます。
手順:
- コピー元のリストを開く
- 「エクスポート」→「Excelにエクスポート」をクリック
- Excelファイルをダウンロードして開く
- 必要に応じてデータを編集
- コピー先のサイトで「既存のリストから」で構造をコピー
- 作成したリストで「グリッドビューでの編集」を開く
- ExcelからデータをコピーしてペースT
この方法は簡単ですが、列タイプの問題があるため推奨されません。
方法4: Power Automateを使う(大量のアイテム向け・推奨)
アイテム数が多い場合や、定期的にコピーする必要がある場合は、Power Automateが最適です。
メリット:
- 5000アイテムまで対応可能
- 自動化できる
- 複雑な列タイプにも対応
- エラーハンドリングが可能
基本的な流れ:
1. リストの構造をコピー(手動またはサイトスクリプト)
「既存のリストから」機能で構造をコピーするか、サイトスクリプトを使用します。
2. Power Automateでアイテムをコピー
フローの構成:
- トリガー:「手動でフローをトリガーします」
- アクション1:「複数の項目を取得」(コピー元リスト)
- 「上から順に取得」に5000を設定
- 設定で「改ページ」をオンにし、しきい値を5000に設定
- アクション2:「選択」(必要な列だけを抽出)
- 左辺:列の内部名
- 右辺:対応する動的コンテンツ
- アクション3:「それぞれに適用する」(Apply to each)
- 入力:選択アクションの出力
- アクション4:「項目の作成」(Apply to eachの中)
- サイトアドレス:コピー先のサイト
- リスト名:コピー先のリスト
- 各列に対応する値を設定
注意が必要な列タイプ:
選択肢(複数選択):
配列に変換する必要があるため、「選択」アクションで加工します。
ハイパーリンク:
URLと表示テキストを別々に処理する必要があります。
「SharePointにHTTP要求を送信します」アクションを使用します。
画像列:
画像データを直接コピーするのは困難です。
URLのみコピーするか、別途処理が必要です。
参照列(Lookup):
参照先のIDを取得してコピーする必要があります。
詳細な手順:
Power Automateでの実装は複雑なため、段階的に構築することをお勧めします。
まず基本的な列(テキスト、数値、日付など)で動作確認し、その後複雑な列を追加していきます。
リスト間でアイテムを同期する方法
2つのリスト間でアイテムを常に同期させたい場合の方法です。
Power Automateで同期フローを作成
トリガー:
「項目が作成または変更されたとき」(コピー元リスト)
フローの構成:
- アクション1:「複数の項目の取得」(コピー先リストで同じアイテムを検索)
- フィルタークエリ:Title eq ‘[コピー元のタイトル]’
- 条件:アイテムが存在するか確認
- 式:length(body(‘複数の項目の取得’)?[‘value’])
- 条件:0と等しい
- はいの場合:「項目の作成」(新しいアイテムを作成)
- いいえの場合:「項目の更新」(既存のアイテムを更新)
制限事項:
- アイテム削除の同期はできません(削除トリガーがないため)
- 一意識別子として使っている列が変更されると、新しいアイテムとして扱われます
- IDを使って識別する方法が最も確実です
アイテムを個別にコピーする方法
リスト内で特定のアイテムだけを複製したい場合の方法です。
グリッドビューで1行ずつコピー
手順:
- リストを開く
- 「グリッドビューでの編集」をクリック
- コピーしたいアイテムの行を選択
- Ctrl+Cでコピー
- 「+新しいアイテムを追加」をクリック
- 新しい行を選択してCtrl+Vでペースト
- 必要に応じて内容を修正
- 「グリッドビューの終了」をクリック
Power Automateで「複製」ボタンを追加
特定のアイテムに対して「複製」機能を追加できます。
フローの構成:
- トリガー:「選択されたアイテムに対して」
- アクション1:「項目の取得」(選択されたアイテムの詳細を取得)
- アクション2:「項目の作成」(同じ内容で新しいアイテムを作成)
- 各列に、取得した項目の対応する値を設定
フローを公開すると、リストのアイテムメニューの「自動化」から実行できるようになります。
コピー時の注意点とベストプラクティス
列の内部名に注意
Power Automateを使う場合、列の内部名が重要です。
内部名とは:
SharePointが内部で使用する列の識別子です。
表示名とは異なる場合があります。
確認方法:
- リストの設定を開く
- 列名をクリック
- URLの「Field=」の後の文字列が内部名です
ベストプラクティス:
- リスト作成時は英語の列名を使用
- 後から日本語に変更すると、内部名は英語のまま残ります
- 最初から日本語で作ると、内部名がエンコードされて複雑になります
バージョン履歴の扱い
リストをコピーする際、バージョン履歴は通常最新版のみがコピーされます。
すべてのバージョンを保持したい場合は、専用のツールが必要です。
権限設定
リストをコピーしても、権限設定はコピーされません。
コピー後、必要に応じて権限を再設定する必要があります。
ID列について
SharePointが自動的に割り当てるID列は、コピーしても同じ値にはなりません。
新しいリストでは、1から順番に新しいIDが割り当てられます。
元のIDを保持する必要がある場合は、別の列を作成してIDをコピーします。
大量アイテムのコピー
5000アイテムを超えるリストをコピーする場合は注意が必要です。
リストビューしきい値:
SharePointでは、一度に5000アイテムまでしか取得できません。
対策:
- Power Automateで「改ページ」を有効にする
- 複数回に分けてコピーする
- インデックス付き列でフィルタリングする
添付ファイルの扱い
標準的なコピー方法では、アイテムの添付ファイルはコピーされない場合があります。
添付ファイルも含めてコピーする場合は、Power Automateで特別な処理が必要です。
よくある質問
Q1: リストをコピーするとIDは同じになりますか?
A: いいえ、ID列は新しいリストで1から順番に自動的に割り当てられます。
元のIDを保持したい場合は、別の列(例:「元のID」)を作成し、そこにIDをコピーする必要があります。
Q2: 50MBを超えるリストをテンプレートでコピーできますか?
A: いいえ、テンプレート機能は50MBまでの制限があります。
50MBを超える場合は、Power AutomateやExcelを使った方法を検討してください。
Q3: 画像列はコピーできますか?
A: 画像列の画像データを完全にコピーするのは困難です。
Power Automateを使用する場合、画像のURLのみコピーするか、別途画像を再アップロードする必要があります。
Q4: 参照列(Lookup)はどうやってコピーしますか?
A: 参照列をコピーする場合、参照先のアイテムIDを取得してコピーする必要があります。
Power Automateでは、「フィールド名Id」という形式でIDを取得できます。
Q5: グリッドビューが表示されません
A: 以下を確認してください:
- リストの設定→詳細設定で「クイック プロパティの編集」が「はい」になっているか
- ビューで「グループ化」が設定されていないか(グループ化があると表示されません)
Q6: 別のサイトコレクションにコピーできますか?
A: はい、できます。
「既存のリストから」機能は、自分がアクセスできる任意のサイトからコピーできます。
ただし、テンプレート機能を使う場合は、手動でテンプレートファイルをダウンロード・アップロードする必要があります。
Q7: コピーした後、元のリストを変更しても同期されますか?
A: いいえ、一度コピーした後は独立したリストになります。
継続的に同期したい場合は、Power Automateで同期フローを作成する必要があります。
Q8: 100件以上のアイテムをグリッドビューでコピーできますか?
A: はい、できます。
ただし、最初にリスト画面で最後までスクロールして、すべてのアイテムを読み込んでからグリッドビューを開く必要があります。
大量のアイテムがある場合は、Power Automateの使用をお勧めします。
まとめ
SharePointリストのコピーには、目的に応じて複数の方法があります。
構造だけをコピーする場合:
「既存のリストから」機能が最も簡単で推奨されます。
数クリックで新しいリストを作成でき、列の設定やビューが完全にコピーされます。
構造とデータを完全にコピーする場合:
アイテム数と容量によって最適な方法が異なります。
- 50MB以下、少量のアイテム:リストテンプレート機能
- 100件以下のアイテム:グリッドビューでコピー&ペースト
- 大量のアイテム:Power Automate(最も柔軟で強力)
Power Automateは学習コストがかかりますが、一度作成すれば繰り返し使用でき、複雑な列タイプにも対応できます。
定期的にリストをコピーする必要がある場合や、大量のアイテムを扱う場合は、投資する価値があります。
重要なのは、各方法の制限事項を理解し、自分の状況に最適な方法を選択することです。
特に、ID列の扱い、バージョン履歴、添付ファイル、権限設定などは、コピー後に追加の作業が必要になる場合があります。
適切な方法を選択し、事前にテストしてから本番環境で実行することをお勧めします。

コメント