「これってSharePointでできないの!?」なんていう瞬間、開発やカスタマイズの現場では意外と多くあります。SharePointはとても柔軟なプラットフォームですが、実は“万能ツール”ではありません。「コードを書けば何とかなる」と思って構築を進めると、モダンページの仕様や制限に阻まれて苦い思いをすることもしばしば。今回は、実際のプロジェクトや運用の中で見えてきた「SharePointではできないこと」をまとめて紹介します。
1.CSSとJSが直接使えない
WordPressテーマみたいに、カスタムCSSを入力して適用したい…ダメなの?
SharePointでページの見た目を自由に変えたいと思っても、モダンUIではCSSやJavaScriptを直接書くことができません。検索して調べると、カスタムCSSを入力できる場所があるかのような記事や公式ヘルプが多く出てきますが、これらはすべてクラシックUIでの話です。では、クラシックUIとは何でしょうか?
クラシックUIとモダンUIの違い
簡単に比較すると、こんな感じです。
クラシックUI | モダンUI | |
---|---|---|
レイアウト | 固定幅 | レスポンシブ |
カスタマイズ | マスターページやCSSを 直接編集可能 |
CSS/HTMLの直接編集は不可 (SPFx※で拡張) ※SharePoint Framework |
年代的背景 | ~2016年 廃止予定・非推奨・新規作成不可 |
2016年~ 新規で作成するものは全てモダンUIに |
要するに、クラシックUIは「前時代の規格」であり、プラットフォーム上から手軽にスクリプトやCSSが使えたのは、過去の話です。これから新しく構築するサイトは自動的にモダンUIになります。
モダンUIでカスタムCSSを使うには?
モダンUIは制約が多いですが、完全にCSSやJavaScriptが使えないわけではありません。モダンUIで独自のスタイルやスクリプトを適用するには、SPFx(SharePoint Framework)という仕組みを使う必要があります。
SPFxはSharePoint専用の拡張機能(アプリ)のようなもので、これを使えば安全にスタイルやスクリプトを追加できます。しかし、完成までにハードルが高いのも事実です。
——
▼特に、準備や許可の面で注意が必要です
- 開発用の環境を整える必要がある
- テナントでアプリの使用が許可されている必要がある
- アプリの配布・利用・設定において権限が必要
——
技術的には可能でも、「IT部署にアプリを入れるのは困ると言われた」「アプリを適用するための権限を許可してもらえなかった」など、思うように導入できないこともあります。
事前調査や根回しをよく行ってからプロジェクトを進めましょう。
ちなみに、アプリ作成については以下の記事で触れています。
SharePointのモダンUIでカスタムCSS・カスタムJSを適用する方法
2.色変更に制約がある
色って自由に変えられないの??
SharePointで色を設定するには、色テーマの一覧から選択する必要があります。
テーマはサイト単位で適用されるため、「ページごとに色を変えたい」などの要望を実現するのは難しくなります。(ニュースページだけ寒色系、ドキュメントページだけ暖色系…など)
[2025年8月頃 新機能追加]サイトのブランド化でテーマカラーを作成する
既存の色テーマの他に「サイトのブランド化」というメニューが新しく追加されました。このメニューはシステムサイトへのリンクとなっていて、ここからサイトのテーマを追加することができるようになりました。
サイト単位で適用されることは変わりないのですが、これまで既存の標準テーマからしか選べなかった色を、組織のブランドカラーに合わせて自由に作成・適用できるようになりました。
ハブサイトを設定するとテーマカラーが継承される
サイトをハブサイトとして連携した時のことです。ハブサイトで親子関係を作ると、ハブ(親)サイトのテーマを子サイトが継承するようになります。子サイトに大きく影響を与えることになるので、計画的に使用しましょう。
3.ニュースにカテゴリという概念がない
カテゴリ表示できない!
「ニュースをカテゴリに分けたい」という要望は非常に多いのですが、カテゴリ機能は搭載されていないため、[サイトのページ]一覧から「選択肢」列を追加し、疑似的にカテゴリのような情報を付与することになります。
標準機能ではないため、SharePointのニュースWEBパーツでは表示できないことになります。例えば、以下のような構成。

これ、SharePoint標準のWEBパーツではできません。
代替案
追加した選択肢列(カテゴリ)で条件指定して絞り込み表示することはできるので、ニュースWEBパーツを複数作り、それぞれ絞り込み表示を行い、並べることになります。
例えば、カテゴリが「お知らせ」と「重要情報」の2つなら、お知らせだけ表示するWEBパーツと重要情報だけ表示するWEBパーツを作るイメージです。
<カテゴリ列を付与する方法>
[サイトコンテンツ]>[サイトのページ]で一覧を表示し、「+列を追加」から「選択肢」を追加します。
4.URLフォームが255文字までしか入れられない
日本語名のURL入れるとエラーになる…
SharePointリストのURL入力欄で入れることができるURLは255文字がMAXになります。日本語名のページはエンコード(あ⇒%E3%81%82)されてしまうため、255文字を超過することが結構な頻度であります。
代替案1:複数行フォームを使用する
URLリストではなく、1000文字MAXの複数行フォームを使用します。
複数行フォームを使用するとリストの標準表示ではaタグがついていない状態になるため、aタグを貼りたい場合は、書式の編集してクリックできるようにするのが良いでしょう。
クイックリンクではこの手法は使えないため、代替案2を使いましょう。
代替案2:短縮URLを使う
bitly.comなどの短縮URLサービスを使用すると、URLが255文字以内に納まります。
ただし、法人環境の場合bitlyへのアクセスがブロックされている場合もあるため、注意が必要です。
[おまけ]その他注意すべき仕様
チームサイトとコミュニケーションサイトでできる内容が異なる
サイトのタイプでできることとできないことがあります。構築時は、仕様をよく確認してから選びましょう。
チームサイト | コミュニケーションサイト | |
---|---|---|
footerの有無 | なし | あり |
メインナビの配置 | 左側縦並び (非推奨だが上部横並びも可能) |
上部横並び (左側縦並びは不可) |
ナビゲーションの階層 | 通常は1階層まで | 複数階層対応 |
Teamsとの連携 | 自動連係 | グループ非連携 |
メインメニューの編集がバグる
バグる。メインメニューを編集して保存しても、編集が適用されない時があり、ハマりやすいので注意。
メニューの項目を削除して作り直すと解消される。
バージョン履歴を遡ると文字化けする
全てのページは、過去バージョンに戻すことができるが、戻すと稀に全て文字化けする。(※再現条件不明)
事前にページを複製して保険を残してから、実行しましょう。
各要素のclass名
各要素のclass名は、ページの編集を行うと変わる場合があります。特に「icon-298」のように、後半の数値が付与されているものが対象です。編集を行うたびに自動で付与されているようなので、カスタムCSSを記述する際は前方一致で適用したり、属性を拾うのが安全です。