技術情報ブログ
SharePoint
2025.09.03

SharePointサイトを効率展開!テンプレート化3つの方法を比較してみた

SharePointサイトを効率展開!テンプレート化3つの方法を比較してみた
小鷹 枝里子

こんにちは。アーティサンの小鷹です。

はじめに

弊社ではSharePointの構築やコンサルティングを行っていますが、最近よくいただくご相談がこちら。

「共通のデザインで、サイトを〇個作りたいんだけど…」

このようなご要望に対して、すべて手作業で対応していては時間も手間もかかって非効率。そんなときに役立つのが「サイトのテンプレート化」です。
テンプレート化しておけば、レイアウトやWebパーツの構成を何度も再設定せずに、簡単に別サイトに再利用可能です。
この記事では、現時点で利用可能な3つのテンプレート化方法について解説します。

もしアーティサンへ興味を持たれた方は、ぜひ内製化支援サービスやSharePoint構築支援のページを是非ご覧ください。

 

テンプレート化方法の比較

現在、SharePoint Onlineで利用可能なテンプレート化方法は以下の3種類あります。

方法名

利用ツール

GUI対応

モダンUI対応

リストアイテムの展開

ページの展開

ドキュメントの展開

今後の安定性

一言コメント

サイトテンプレート

SharePoint Online Management Shell

トップページは含められない

PnP プロビジョニング

PnP PowerShell

現在のおすすめ

旧サイトテンプレート

ソリューションファイル(.wsp)

GUIで使える貴重な方法だがカスタムスクリプト必要

それぞれの方法には特徴があります。

サイトテンプレート(SharePoint Online Management Shell)
組織のテンプレートに表示させることができる唯一の方法です。
PowerShellを使用して設定します。
一見便利そうに見えますが、サイトのページ(トップページやカスタムページ)の構成をテンプレートに含めることができません。

SharePoint のサイト テンプレートとサイト スクリプトの作成を開始する | Microsoft Learn

組織のテンプレートに表示できる方法

PnP プロビジョニング
こちらもPowerShellを使用しますが、こちらの方法はサイトのトップページもテンプレートに含められます。
必要なアプリをEntra IDに登録する等の事前準備も必要になりますが、現在最も実用的な方法といえるでしょう。
ただし、以下の点に注意が必要です。

  • テンプレートにはリストやライブラリ内のアイテム(データ)が含まれません。別途アップロードが必要です。

  • トップページ以外のサイトのページは、テンプレート展開では作成されない場合があります。

PnP リモート プロビジョニング | Microsoft Learn

旧サイトテンプレート(ソリューションファイル使用)
SharePointの「カスタムスクリプト」機能に依存しているものの、唯一GUI操作のみでテンプレートを保存・展開できる貴重な方法です。
公式ページでは「クラシックUIのみ対応」とされていますが、実際にはモダンUIサイトでも利用可能なケースがあり、特に開発知識の少ないユーザーには魅力的な選択肢です。

SharePoint サイトをテンプレートとして保存、ダウンロード、およびアップロードする | Microsoft Learn

次の章からは、PnPプロビジョニングを使用した方法と旧サイトテンプレートを使用した方法を紹介していきます。
なお「サイトテンプレート」方式については、現時点ではトップページなどを含められないなど制限が多く実運用にはやや不向きなため、本記事では詳細な解説は割愛しています。

 

PnP プロビジョニング

PnPプロビジョニングは、Microsoft社が提供する「サイトの構成を自動化・再利用」できる仕組みのひとつです。
PowerShellというコマンド操作ツールを使って、テンプレートを作成・適用します。

 

必要な権限

  • SharePoint 管理者 または サイトコレクション管理者

  • Azure AD(Microsoftの認証基盤)でアプリ登録を行う権限

 

ステップ1:PnP PowerShellモジュールのインストール

管理者権限でPowerShellを起動し、以下のコマンドを実行します。
※一度実行したら次回以降はスキップできます。

Install-Module PnP.PowerShell

※モジュールのインストールに失敗する場合は、以下の点をご確認ください

  • 管理者としてPowerShellを起動しているか?

  • 未署名スクリプトの実行が許可されているか?

  • 信頼されていないリポジトリの警告に「A(すべて続行)」で対応しているか?

PnP PowerShell のインストール | PnP PowerShell

 

ステップ2:Entra IDに「PnP Management Shell」を追加・設定する

Entra IDへの登録には、PowerShellを使用する方法と、Entra ID管理センター(Azureポータル)から手動で設定する方法の2通りがあります。
手順の詳細は以下のページを参照下さい。

PnP PowerShell で使用する Entra ID アプリケーションを登録する | PnP PowerShell

セキュリティの強化により、PnP PowerShellを使用するには、Entra IDにアプリケーション登録が必要です。
※2024年9月以降、本手順は必須となりました。

 

ステップ3:テンプレートの作成

3-1. 適用元サイトの準備

あらかじめテンプレートとして使いたい構成のSharePointサイトを用意しておきます。
例:https://example.sharepoint.com/sites/template-site

3-2. テンプレートの作成

PowerShellにて、以下のスクリプトを使用してテンプレートをエクスポートします。

Connect-PnPOnline -Url 【テンプレートとして使いたいSharePointサイトのURL】 -ClientId "登録したアプリのクライアント ID(アプリケーションID)】" -Interactive  
Get-PnPSiteTemplate -Out "【テンプレ―トをエクスポートしたいディレクトリ】/【テンプレートファイル名】.xml" -Handlers All  
DisConnect-PnPOnline

一行目の「Connect-PnPOnline」で、テンプレートとして使いたいSharePointに接続します。
二行目の「Get-PnPProvisioningTemplate」にて、テンプレートファイルをエクスポートします。
テンプレートの作成が終わったら、三行目の「DisConnect-PnPOnline」でSharePointサイトへの接続を切断しましょう。

テンプレートファイルはxml、またはpnpのどちらかで出力できますが、今回はxmlファイルでの方法を紹介しています。
また、パラメータの設定によって、含められる情報が異なりますので、詳細は以下のページを参照下さい。

Get-PnPSiteTemplate | PnP PowerShell

 

ステップ4:作成したテンプレートを新サイトに適用

4-1. 適用先サイトの作成

テンプレートを適用するための新しいSharePointサイトを作成します。
以下のスクリプトで適用します。

Connect-PnPOnline -Url 【テンプレートを適用したいSharePointサイトのURL】 -ClientId "登録したアプリのクライアント ID(アプリケーションID)】" -Interactive
Invoke-PnPSiteTemplate -Path "【テンプレ―トが格納されているディレクトリ】/【テンプレートファイル名】.xml"
DisConnect-PnPOnline

一行目の「Connect-PnPOnline」で、テンプレートを適用したいSharePointサイトに接続します。
二行目の「Invoke-PnPSiteTemplate」で、接続したSharePointサイトにテンプレートを適用します。
※サイトの上書きとなるため、対象サイトに既存コンテンツがある場合は事前確認を!
テンプレートの適用が終わった時も、三行目の「DisConnect-PnPOnline」でSharePointサイトへの接続を切断しましょう。

 

適用できないもの・注意点

実際にPnPプロビジョニングを試したところ、以下の要素はテンプレートに含められませんでした。

  • ページ内の画像


    画像webパーツに使用する画像ファイルは、xmlファイルの定義ファイルには含まれません。
    以下のように、画像がないため、テンプレートを適用しても画像が表示されません。
    pnp形式でエクスポートするか、別途アップロードしなおす必要があります。

ページ内の画像
  • ページの折りたたみセクション


    サイトのページ内で使用できる「折りたたみ可能なセクション」は、テンプレートに含まれません。
    テンプレートファイルの作成や適用時にエラーは出ませんが「折りたたみ可能なセクション」部分は欠落した状態で適用されます。

ページの折りたたみセクションは欠落する

 

旧サイトテンプレート(ソリューションファイル)

次は旧サイトテンプレートについて紹介します。

旧サイトテンプレートとは、SharePointでクラシックUIが主流だった時代から存在する仕組みです。
「サイトをテンプレートとして保存」機能を使ってwspファイル(ソリューションファイル)を生成し、それを新しいサイトアップロードして適用します。

古い方式ではありますが、テンプレート作成から適用までGUI操作で完結できる上に、コンテンツも含められるという点は大きな利点です。
ただし、この方法は「カスタムスクリプト」を必要とし、将来的にMicrosoftによって使用を制限される可能性があるため、長期運用には注意が必要です。

※ Microsoft公式ではクラシックUIのみとありますが、試してみたところモダンUIサイトでも利用はできました。
ただし適用する場合は実際に検証の上、自己責任でお願いいたします!

SharePoint サイトをテンプレートとして保存、ダウンロード、およびアップロードする | Microsoft Learn

 

必要な権限

  • SharePoint管理者以上の管理者権限(カスタムスクリプトの設定に必要)

  • サイトコレクション管理者 権限

ステップ1:適用元サイトのカスタムスクリプトを許可(SharePoint管理センター)

 

1-1. カスタムスクリプト設定を変更

SharePoint管理センターで[アクティブなサイト]からテンプレート化したいサイトの[設定]を開き、[カスタムスクリプト][編集]を選択します。

SharePoint管理センターでカスタムスクリプトを許可する1

カスタムスクリプトの設定を[許可済み]に変更して、[保存]ボタンを選択します。
※ カスタムスクリプトの許可は24時間経つと自動で無効化されます。

SharePoint管理センターでカスタムスクリプトを許可する2

 

ステップ2:テンプレート(ソリューションファイル)の作成

2-1. テンプレートとしてサイトを保存

適用元サイトの設定で、[テンプレートとしてサイトを保存]を選択します。
(カスタムスクリプトを有効化することで、サイトの設定内に表示されます。)

サイトのテンプレート化

※ モダンUIのコミュニケーションサイトでは上記メニューが表示されない場合があります。
その場合は、ブラウザに以下のURLを入力し、直接遷移してみてください。

https://【テンプレート化したいサイトのURL】/_layouts/15/savetmpl.aspx

2-2.ソリューションファイルの作成

[テンプレートとして保存]画面で、テンプレートファイル名を設定します。
サイト内のリストアイテムやファイルなどコンテンツを含めてテンプレート化したい場合は、[コンテンツを含む]にチェックをした上で[OK]ボタンを選択します。
※コンテンツを含める場合、合計ファイルサイズが50MBを超えるとエラーになります。
 サイト内のコンテンツを減らした上で再度テンプレートを保存してみてください。

テンプレートとして保存

▼合計ファイルサイズが50MBを超えると…

エラーになる

2-3. ソリューションファイルのダウンロード

ソリューションファイルが作成されたら、[ソリューションギャラリー]に遷移します。
テンプレート化完了のメッセージにある[ソリューションギャラリー]のリンクを選択するか、以下のURLを直接入力して遷移します。

https://【テンプレート化したいサイトのURL】/_catalogs/solutions/Forms/AllItems.aspx

[ソリューションギャラリー]内で、作成されたソリューションファイルの名前をクリックすると、端末にソリューションファイルをダウンロードできます。

ソリューションファイルダウンロード

 

ステップ3:作成したテンプレートを新サイトに適用

 

3-1.適用先サイトの作成(SharePoint管理センター)

テンプレートを適用したいサイトを作成します。
この時、サイトの種類を必ず[<テンプレートを後で選択…>]にする必要があります。

まずは、SharePoint管理センターで、サイトの新規作成メニューから[その他のサイトを参照する]を選択します。
[その他のサイトを参照する]はSharePoint管理センターからサイト作成した時だけ表示されるメニューです。

その他のサイトを参照する

[その他のテンプレート]を選択します。
もしサイトの再読み込みについて確認のメッセージが出たら、[再読み込み]を選択してください。

ソリューションファイルダウンロード

[サイトコレクションの選択]ページの[テンプレートの選択]で、[ユーザー設定]の[<テンプレートを後で選択…>]を選択します。
他の項目も入力した上で、[OK]ボタンを選択してください。
※ もし[OK]ボタンを選択してしばらく待っても読み込み等発生しない場合があります。その時は面倒ですが、再度SharePoint管理センターのサイトの新規作成メニューからやり直してください。

サイトテンプレートの選択

 

ステップ4:適用先サイトのカスタムスクリプトを許可する(SharePoint管理センター)

テンプレートを適用する側のサイトもカスタムスクリプトを許可する必要があります。
(許可しないとソリューションファイルをアップロードできないため)
まずはSharePoint管理センターで、テンプレートを適用したいサイトの[設定]を開き、[カスタムスクリプト][編集]を選択します。
カスタムスクリプトの設定を[許可済み]に変更して、[保存]ボタンを選択します。
※ カスタムスクリプトの許可は24時間経つと自動で無効化されます。

 

ステップ5:作成したテンプレートを新サイトに適用

テンプレートを適用する側のサイトにアクセスし、[ソリューションギャラリー]に遷移します。
サイトの設定>[ソリューション]をクリックするか、以下のURLを直接入力して遷移します。

https://【テンプレート化したいサイトのURL】/_catalogs/solutions/Forms/AllItems.aspx

[ソリューションファイルのアップロード]を選択し、作成したwspファイルを選択します。

ソリューションファイルのアップロード

次に [アクティブ化]を選択し、ソリューションファイルをアクティブ化します。
アクティブ化することで、この後のステップでテンプレートとして選択可能になります。

ソリューションファイルのアクティブ化

サイトのホーム画面に戻り、テンプレートの選択で[ユーザー設定]タブ内に表示されたソリューションファイルを選択し、[OK]ボタンを選択します。

ソリューションファイルのアクティブ化

数分程度待つと、SharePointグループのセットアップ画面に遷移します。
基本は[既存のグループの利用]のまま[OK]ボタン選択で大丈夫です。
(別途、新規にSharePointグループを作成したい場合は[新しいグループの作成]を選択してください。)
これでサイトへのテンプレート適用完了です。

ソリューションファイルのアクティブ化

 

適用可能なサイトと注意点

旧サイトテンプレートを使用した方法を試したところ、欠落なく適用され、リストの書式設定(JSON)も含めて移植可能でした。
ただし、モダンUIで新しく追加された Web パーツでは欠落やエラーが発生する場合があるため、適用前に必ず検証を行うことをおすすめします。

さらに、サイトの種類によってはソリューションファイルを適用できないケースがあるため、注意が必要です。

  • ミュニケーションサイト … 利用可能

  • チームサイト(M365 と紐づいていない) … 利用可能

  • チームサイト(M365 と紐づく) … 利用可能

  • チームサイト(Teams と紐づく) … 利用不可

Teamsと紐づいたチームサイトで作成したソリューションファイルは、テンプレート適用先サイトのソリューションギャラリーにアップロードしても選択肢として表示されず、適用できませんでした。

適用元サイト(ソリューションファイルを作成するサイト)は、Teams と紐づいたチームサイトを避けて作成することを推奨します。

 

おわりに

いかがでしたでしょうか。
今回紹介した3つのテンプレート化方法には、それぞれのメリット・デメリットがあります。

  • 機能制限があるものの公式の方法を使いたい場合「サイトテンプレート」

  • モダンUI対応の「PnP プロビジョニング」

  • 画面操作(GUI)でテンプレート化できる「旧サイトテンプレート」

自社のニーズに最適なテンプレート方式を選ぶには、専門知識や実績に基づいた判断が不可欠です。弊社では、サイト設計からテンプレート作成、内製化の支援まで幅広く対応しています。
もしアーティサンへ興味を持たれた方は、ぜひ内製化支援サービスやSharePoint構築支援のページをご覧ください。

 Power Platform(Power Automate、Power Apps)とSharePointの技術支援や開発を担当の小鷹枝里子

小鷹 枝里子

🖊小鷹枝里子さんのブログ一覧はこちら

2016年12月、メーカーの事務兼CADオペレーターから未経験のIT業界に飛び込もうとアーティサンに入社。

今は主に Power Platform(Power Automate、Power Apps)とSharePointの技術支援や開発を担当しております。

山形県出身、神奈川県在住。何となく海に近い所に住むのが好きです。インドア派なので滅多に海行かないんですけどね。

趣味はゲームで、最近はのんびりスマホゲームや某狩りゲームをやってます。

推しのうまい棒は納豆味。

Microsoftクラウド関連

シェアする
記事カテゴリ
最新記事
2025.09.03

SharePointサイトを効率展開!テンプレート化3つの方法を比較してみた

2025.08.27

SharePointで社内ポータルを作りたいと思ったときに読むブログ(後編)

2025.08.20

【2025年8月更新】Power Automate 初心者 ~ 中級者 向けロードマップ

2025.08.13

SharePointで社内ポータルを作りたいと思ったときに読むブログ(前編)

2025.08.06

【2025年8月更新】Power Apps の実践的なノウハウ まとめ

AccessCSSBreakpointObserverSet複数の添付ファイル送信元リストLoopショートカットキー時間外非エンジニアDataverseSharePoint Framework転職Slide showMicrosoft365サイトの種類InfoPathxUnitメディアクエリForAll承認フローメールの送信非表示Microsoftshortcut key通知体験談JavaScriptSPFx主キー比較移行要件定義MatTable.Net Core 3.1スマホUpdateContextform差出人アプリdesignconcat関数ファイル勉強表示サンプルCopilot Studio社内ポータル多言語化サイト構成Angular MaterialVSCodePCロードマップエクスポートインスタントクラウドフロー[市民開発者JSON文字制限フィルター クエリ内製化切替samplePowerAppsグループウェアMUI権限設計データ構造.Net Core Test Explorerレスポンシブ技術インポート自動化したクラウドフロー構築デザインフロー実行ドキュメント ライブラリ市民開発登録者X-SPNFCタグエンゲージメントMultilingualデータ移行モデル駆動型アプリSortByColumns関数Dataverse for Teams入門Itカスタマイズ委任自動化したクラウド フロー運用開発環境filter query管理システム列StyleDLPポリシー地方自治体MLJSON書式Power AppsTypeScriptitem関数初心者DXcomponentVBAフローの種類選択肢列環境sortガバナンス登録日StudioTestCopilot Studiot共有リンクテンプレート化Power PlatformHTMLGoogle Maps中級者情報技術ダイアログエラーインスタント クラウド フロー参照列本番環境ソートerror notification更新者AICanvas自治体DXレポート化サイト複製SharePointEF CoreMarker ClustererキャンバスアプリメッセージIDコンポーネントエクセルスケジュール済みクラウド フローChatGPTライセンスmultiple itemエラー通知更新日生成系AITest Studio生成AI自治体APIPnP PowerShellExcelマイグレーションRANK()関数DatePickerメールdialogerrorレスポンシブ レイアウトOpenAI環境構築手順複数項目削除変更Copilotテスト事例HTTP リクエストカスタムスクリプトPower AutomateFramework CoreDynamics 365 SalesDropdownfirst()関数Tips復元responsive layoutオープンAIpipelineシェアポイントフォルダ外部DBlicenseテストスタジオ活用ワーケーションC#Attribute directivesMicrosoft Translatorviewnest新機能restoreデータ行の制限チャットGPTCI/CD便利機能ゴミ箱連携添付ファイルコントロール使い方サイトブランド化名古屋attributeO/Rマッパーマーカークラスタリングライブラリビュー入れ子変数Power BI引き継ぎgalleryパイプラインカレンダー完全削除接続ファイルサイズ基本知識フォントカスタマイズ体験記validationazure sql databasetailwindcssアクセス制限動的リスト検索個人列退職ギャラリーDevOpsCalendarモデル駆動型データフローフルリモートワークPowerAutomateブランドセンター感想ローコードCase式マルチテナント承認collectionMicrosoft 365グループユーザー列所有者を変更スクロールMicrosoft 365Teamsセキュリティロールrecycle binアーティサンX-SP Designテーマ作成チームサイトAngularHTTP RequestドロップダウンメニューリマインドコレクションセキュリティグループSharePoint Online異動コンテナ簡易在庫管理ローコード開発ビジネスルールアクセス許可Artisanスライドショーデザイン拡張コミュニケーションサイト
PageTop
ページトップに戻る