SharePointで選択肢(Choice)列を追加できない原因と対処法まとめ

SharePoint のリストに「選択肢(Choice)列」などの列を追加しようとして「列を作成できませんでした。もう一度お試しください」とだけ表示されると、原因が分からず困りがちです。本記事では、障害・テナント設定・UI不具合・制限・コンテンツタイプなど、現場で起こりやすい原因と実務的な対処手順をまとめて解説します。

目次

SharePoint で Choice 列を追加できない症状の整理

まずは、よくある症状を整理します。あなたの状況がどれに当てはまるか、確認しながら読み進めてください。

  • SharePoint リストで新しい列(特に「選択肢(Choice)」)を追加しようとすると、保存時にエラーが出る
  • エラーメッセージは英語で「Sorry, we couldn’t create the column. Please try again.」、日本語だと「列を作成できませんでした。もう一度お試しください」程度しか表示されない
  • リスト設定画面から追加しても、リスト画面の「列の追加」から追加しても同じエラー
  • Choice 列だけでなく、テキスト列・数値列など他のタイプでも追加できないことがある
  • 同じサイト内の別リストでも再現することがある
  • 自分は「フルコントロール」権限を持っている
  • 画面左下に「クラシック SharePoint に戻る」リンクが見当たらず、クラシック画面での回避ができない

このような状況では、「自分の操作ミス」ではなく、SharePoint 側の制限・設定・一時的な障害・UI の不具合が絡んでいることがほとんどです。

原因の大きなパターンを把握する

列が追加できないときの原因は、大まかに次のようなパターンに分けられます。

原因パターン具体例基本的な対応方針
障害・テナント設定特定期間だけ複数ユーザーで同じエラーが発生/新規サイトでも再現影響範囲の確認 → 管理センターの「サービス正常性」確認 → サポート起票
UI 不具合(モダン画面)画面上は問題なさそうだが保存時だけ失敗/クラシック UI が使えないサイト列から追加/PnP PowerShell・REST・Graph など別経路で列を作成
コンテンツタイプ・レコード管理Sealed コンテンツタイプ/保持ラベル・レコード管理でロックコンテンツタイプ設定・保持ポリシー・ラベルを確認し、必要に応じて調整
列数・行サイズなどの制限列が非常に多い/ルックアップ系の列が多数/書式付き複数行テキストが多い不要列の削除/重い列を整理し、制限に引っかからないようにする
Power Apps カスタムフォーム・ビューカスタマイズフォームを使っている/アイテム数が多いリスト既定フォームへ戻す/アイテム数を絞ったビューでの作業を試す

まずは「自分だけの問題か」「サイト全体・テナント全体の問題か」を切り分け、その上で UI の回避策や設定チェックをしていくのが効率的です。

最初にやるべき切り分け:障害か設定かを見極める

自分のアカウントだけで起こっているか確認する

最初に、以下を確認しましょう。

  • 同じリストで、同僚のアカウントでも同じエラーが出るか
  • 同じサイト内の別リスト、新規に作成したリストでも列の追加ができないか
  • まったく別のサイト(例:別のチームサイトやコミュニケーションサイト)でも再現するか
確認結果考えられる傾向次の一手
自分だけ再現ブラウザー・キャッシュ・拡張機能や権限設定の問題の可能性別ブラウザー/プライベートウィンドウで再試行/権限の再付与を依頼
同僚も、同じサイトでだけ再現サイト単位の設定・制限・コンテンツタイプ・保持設定の可能性サイト管理者/SharePoint 管理者へ相談し、設定の確認を依頼
別サイトや新規サイトでも再現SharePoint Online 全体の障害/テナント設定・ポリシーの影響の可能性Microsoft 365 管理センターの「サービス正常性」確認 → サポート起票

管理者が確認すべき「サービス正常性」

組織アカウント(Microsoft 365)で運用している場合、管理者は次の手順で障害情報を確認できます。

  1. Microsoft 365 管理センターに管理者アカウントでサインイン
  2. メニューから「正常性」→「サービス正常性」を開く
  3. 「SharePoint Online」「Microsoft 365 ポータル」「Microsoft 365 スイート」などの状態を確認
  4. 関連しそうなインシデント/アドバイザリが出ていないか内容を確認

同時期に世界的・リージョン的な障害が発生している場合、そこに「列追加に失敗する」「リストのスキーマの更新に失敗する」などの記載があることがあります。この場合は、ユーザー側でできることは限られているため、復旧を待ちつつ、暫定的な運用(別のリストや列構成で代替するなど)を検討します。

UI 不具合を避けて列を作成する:別経路で作る

モダン UI 上の「列の追加」ボタンで保存時にだけエラーになる場合、バックエンドの機能自体は生きているのに、UI のバグで失敗していることがあります。この場合は、別経路から列を作成することで回避できるケースが多くあります。

サイト列として作成し、リストに追加する

サイト列(Site Column)として列を作成し、それをリストに「既存の列」として追加する方法です。モダン画面で列を直接追加するより安定していることがよくあります。

サイト列の作成手順(サイト所有者以上)

  1. 対象サイトを開き、画面右上の歯車アイコン(設定)から「サイトの設定」を開く
  2. 「Web デザイナー ギャラリー」または「ギャラリー」の中にある「サイト列」をクリック
  3. 「新しい列の作成」をクリック
  4. 列名や種類を入力(例)
    • 列名:状態
    • 種類:選択肢(Choice)
    • 選択肢:未着手/進行中/完了 など
  5. 必要に応じてグループ(「カスタム列」など)を選択して作成

サイト列をリストに追加する手順

  1. 問題が発生しているリストを開く
  2. 右上の歯車 → 「リストの設定」を開く
  3. 「列」セクションの「既存のサイト列から追加」をクリック
  4. 作成したサイト列のグループを選択し、対象の列(例:状態)を選んで「追加」をクリック
  5. 「OK」で保存

この方法で列の追加に成功する場合、「リスト画面の列追加 UI に起因する不具合だった」と判断できます。

PnP PowerShell で列を作成する

より技術的な方法になりますが、管理者や IT 担当者なら PnP PowerShell を使うのが非常に有効です。モダン UI を経由せずに、直接 SharePoint の API を叩けるため、UI バグの影響を受けません。

前提条件

  • Windows PowerShell または PowerShell 7 が利用可能
  • PnP.PowerShell モジュールがインストールされている
    Install-Module PnP.PowerShell -Scope CurrentUser でインストール可能
  • 対象サイトへの適切な権限(通常はサイトコレクション管理者以上)

接続と Choice 列の追加例

# サイトへ接続(MFA 対応の対話型ログイン)
Connect-PnPOnline -Url https://<tenant>.sharepoint.com/sites/<site> -Interactive

# 選択肢(Choice)列を追加
Add-PnPField -List "<リスト名>" -DisplayName "状態" -InternalName "Status" `
  -Type Choice -AddToDefaultView -Choices "未着手","進行中","完了"

ポイント

  • -DisplayName がリストに表示される列名(日本語でも可)
  • -InternalName は内部名で、後から変更できません。英数字・短め・重複しない名前にします(例:Status)
  • -Type Choice 以外にも Text, Number, DateTime などが指定可能
  • 複数選択を許可したい場合は、後から列設定を編集するか、XML 定義で詳細設定を行います

PnP PowerShell から列追加が成功するのに UI からはエラーになる場合は、ほぼ間違いなく UI の問題か、UI が使っている API の呼び出し方に限定された問題です。

REST API / Graph API で列を作成する(概念)

より開発寄りの方法として、REST API や Microsoft Graph API を利用して列を追加することもできます。たとえば REST API なら、次のようなリクエストになります。

POST https://<テナント>.sharepoint.com/sites/<サイト>/_api/web/lists/getbytitle('リスト名')/fields
Content-Type: application/json;odata=verbose
X-RequestDigest: <フォームダイジェスト値>

{
  "__metadata": { "type": "SP.FieldChoice" },
  "Title": "状態",
  "Choices": { "results": [ "未着手", "進行中", "完了" ] },
  "EditFormat": 0,
  "FillInChoice": false
}

これはあくまで概念的な例ですが、Power Automate や独自アプリケーションから列を自動生成したい場合にも使えます。UI が不安定な期間だけ、管理者が一時的にこの経路で列を用意する、といった運用も可能です。

設定・制限を確認する:該当すれば修正

UI 回避策でも解決しない場合や、根本原因を押さえておきたい場合は、SharePoint の設定・制限を確認していきましょう。ここでは、実務で特にハマりやすいポイントに絞って解説します。

内部名の衝突・予約語の可能性

SharePoint の列には、表示名とは別に「内部名(Internal Name)」が存在します。内部名は最初に作成されたときに決まり、その後変更できません。

  • 過去に同じ内部名の列を作って削除した
  • 予約語に近い名前(例:ID, Title, Name など)を使おうとしている
  • 日本語名から自動生成された内部名が、意図せず衝突している

このような場合、UI 上は特にエラー原因が表示されないまま列追加に失敗することがあります。

NG または避けたい内部名の例理由・注意点おすすめの代替案
ID内部で既に使用されている予約語ItemID, CustomID など
Title標準の「タイトル」列と競合する可能性MainTitle, Subject など
Status他のリスト・サイト列で既に使われていることが多いStatusTask, Status2 など
日本語そのまま自動変換で意図しない文字列・重複になることがある英数字で短め+日本語は表示名にする

対処のポイント

  • まずは無難な内部名(例:Status2 など)で試す
  • 列が追加できたら、表示名を日本語に変更(例:「状態」)する
  • 内部名は後から変えられないため、最初からルールを決めておく(例:接頭辞+用途)

コンテンツタイプの Sealed 設定を確認する

対象リストがコンテンツタイプを使用している場合、そのコンテンツタイプが「Sealed(封印)」されていると列追加に制限がかかることがあります。特に、組織で配布された共通コンテンツタイプを使っているケースでは要注意です。

コンテンツタイプの確認手順

  1. リスト画面の右上歯車 → 「リストの設定」を開く
  2. 「詳細設定」で「コンテンツ タイプの管理を許可する」が「はい」になっているか確認
  3. 「コンテンツ タイプ」の一覧に表示されているものをクリック
  4. そのコンテンツタイプに列を追加できるか(UI 上のメニューやエラー)を確認

もしコンテンツタイプが組織共通の Sealed なものだった場合、サイトコレクション側から列を自由に追加できないことがあります。この場合は、

  • 別途カスタムコンテンツタイプを作成し、それをリストに適用する
  • コンテンツタイプの管理者に、必要な列を含めた新バージョンを定義してもらう

といった、もう一段階上の設計レベルの対応が必要になることがあります。

レコード管理・保持ラベルによるロック

Microsoft Purview(旧 Office 365 セキュリティ/コンプライアンス)やレコード管理の設定で、ライブラリやリストが保持ラベル・レコードラベルの対象になっている場合、列の追加・編集が制限されることがあります。

  • アイテムに「レコード」ラベルが付いている
  • サイトまたはライブラリ単位で保持ポリシーが設定されている

このようなケースでは、編集が一部ロックされることがあります。管理者に以下を確認してもらいましょう。

  • 対象サイト/ライブラリ/リストに適用されている保持ポリシー・保持ラベル
  • レコード管理の設定(レコードに対する編集禁止の範囲)
  • 一時的にラベルを外せるか、もしくは新しいリストへデータを移行する必要があるか

列数・ルックアップ列・1行あたりのサイズ制限

SharePoint のリストには、列の種類や数、1行あたりのデータサイズなどに上限があります。特に、次のようなリストは要注意です。

  • 列が非常に多く、スクロールしても終わらない
  • ルックアップ列(参照列)、ユーザー列、集計列が多い
  • 「複数行テキスト(書式付き)」の列がたくさんある

代表的な制限イメージは次のとおりです(実際の数値はバージョン・仕様により変動するため、公式ドキュメントも併せて確認してください)。

項目目安となる制限対処の方向性
列の総数数百列を超えるとエラーやパフォーマンス低下のリスク不要列の削除/別リストへの分割/アーカイブ
ルックアップ系の列一定数を超えると行サイズ制限に抵触する可能性ルックアップ列を見直し、必要最小限にする
1行あたりの内部サイズ添付ファイルや長大なテキスト、書式付き HTML が多いと上限に近づくファイルはライブラリへ分離/長文は別リストや OneNote 等に逃がす

実務でのチェック例

  • Excel にエクスポートし、列数をざっくり数えてみる
  • しばらく使っていない列や、意味が重複している列を整理・削除する
  • 履歴的に残したい場合は、エクスポートして別リストやアーカイブサイトへ移動する

Power Apps カスタムフォームの影響

リストのフォームを Power Apps でカスタマイズしている場合、フォームとリストスキーマがずれてしまい、列追加時にエラーになるケースがあります。

一度既定フォームに戻して試す

  1. リスト画面の右上の歯車 → 「リストの設定」を開く
  2. 「フォームの設定」をクリック
  3. 「既定の SharePoint フォームを使用する」または類似の項目を選択し、「OK」で保存
  4. リスト画面に戻って、列の追加をもう一度試す

これで列追加ができるようになった場合は、Power Apps フォームが原因だった可能性が高いです。列追加後、再度 Power Apps からフォームをカスタマイズし直し、必要であれば新しい列をフォームに配置します。

ビュー・インデックス・しきい値の影響

アイテム数が非常に多いリストでは、ビュースレッショルド(しきい値)や自動インデックス作成処理などが影響し、列追加時に裏側での処理が失敗してエラーとなることがあります。

次のような対処を試してみてください。

  • アイテム数を絞り込んだ新しいビューを作成し、そのビューで列追加を試す
  • 不要アイテムをアーカイブ用リストに移動し、メインリストのボリュームを減らす
  • インデックス列の数が多すぎないか確認し、不要なインデックスを削除する

クラシック画面に頼れない時代の考え方

かつては、モダン UI で不具合がある場合に「クラシック SharePoint に戻る」リンクからクラシック UI を開き、そちらで設定を行うという回避策がよく紹介されていました。しかし、最近の環境では多くのサイトでこのリンク自体が表示されなくなっています。

そのため、今後は次のような方針で考えるのがおすすめです。

  • クラシック UI は「使えたらラッキー」程度に考え、あてにしない
  • サイト列・PnP PowerShell・REST・Graph など、UI を介さない設定方法を身につける
  • どうしても UI でできない作業は、設計者・管理者・開発者と連携してスクリプトベースで対応する

特に組織規模で SharePoint を使っている場合、IT 部門が最小限の PowerShell スクリプトを用意しておくだけで、現場のトラブル対応が格段に楽になります。

実務での進め方サンプル:チェックリスト

ここまでの内容を踏まえ、実務での進め方をチェックリスト形式で整理します。

ステップ担当やることポイント
1. 影響範囲の確認利用ユーザー同僚・別リスト・新規サイトで再現するか確認「自分だけの問題」か「サイト/テナントの問題」かを切り分ける
2. 簡易な UI 回避利用ユーザー or サイト所有者サイト列→既存サイト列から追加を試すこれで解決すれば UI バグの可能性が高い
3. 技術的な回避IT 部門・管理者PnP PowerShell や REST で列を作成再現手順・ログを残しておくと、後で原因調査しやすい
4. 設定・制限の調査管理者・設計者内部名、コンテンツタイプ、保持・レコード、列数、行サイズなどを確認必要に応じてリストの構造見直しやアーカイブを検討
5. サポート起票テナント管理者Microsoft 365 管理センターからオンライン サービス リクエスト影響範囲・再現条件・試した対処を詳しく添付する

Microsoft 365 管理センターからサポートを起票する際のポイント

組織アカウントで運用している場合、最終的には Microsoft サポートに調査を依頼するのがもっとも確実です。サポート起票時には、次の情報を揃えておくと対応がスムーズです。

  • エラーメッセージの正確な内容(英語メッセージ含む)
  • 影響範囲:どのサイト/どのユーザーで発生しているか
  • 再現手順:何をクリックして、どこでエラーが出るのか
  • いつから発生しているか(日時・タイムゾーン)
  • 既に試した対処:ブラウザー変更、サイト列経由、PnP・REST など
  • スクリーンショット(URL・リスト名・列名が分かるもの)

このあたりを最初からまとめて送っておくと、「まずは基本的な切り分けから…」といったやり取りを何度も往復せずに済む可能性が高まります。

よくある質問(Q&A)

Q. 個人の Microsoft アカウント(@outlook.com など)でも同じようなエラーが出ますか?

A. SharePoint Online(Microsoft 365)の機能としての挙動なので、一般的には組織向けテナントで問題になります。個人アカウント向けの OneDrive や簡易的なサイトでは、ここで紹介した PowerShell や管理センターの手順は使えません。エラー内容が似ていても、別サービスの場合は別の問題である可能性が高いです。

Q. 内部名はどこで確認できますか?

A. 既存の列であれば、「リストの設定」→列名をクリックした時の URL を見ると、Field=内部名 のように表示されます。新しく列を追加する際は、内部名を意識して英数字で設定するため、PowerShell や REST を使うのが安全です。

Q. 列を追加したあと、表示名だけ日本語に変えても問題ありませんか?

A. はい、内部名と表示名は別管理なので、表示名を日本語に変えても基本的には問題ありません。Power Apps やワークフロー、コードから参照するときは内部名を使うのが一般的です。

Q. エラーは Choice 列だけで、テキスト列は追加できました。なぜでしょうか?

A. Choice 列は内部的には別のテーブルに選択肢値を持つため、テキスト列とは異なる制限や処理が入ります。例えば、既存のカスタマイズやコンテンツタイプの設定が Choice 列のみを制限している場合や、Choice 列の追加時にだけ特定の UI バグが発生している可能性があります。この場合も、PnP PowerShell で Choice 列を作成できるかを試すと切り分けに役立ちます。

Q. テナント全体で新しい列が追加できません。どうすればいいですか?

A. まず Microsoft 365 管理センターの「サービス正常性」で、SharePoint Online に関するインシデントやアドバイザリが出ていないか確認しましょう。テナント設定やバックエンドの問題である可能性も高いため、管理センターからオンライン サービス リクエストを起票し、Microsoft サポートに調査を依頼するのが最短です。

まとめ:SharePoint で Choice 列を追加できないときの基本戦略

SharePoint のリストで「選択肢(Choice)列を追加できない」「列を作成できませんでした」といったエラーが出るときは、次のポイントを押さえて対処していきましょう。

  • まずは影響範囲を確認し、「自分だけ」か「サイト/テナント全体」かを切り分ける
  • サイト列として作成→既存サイト列から追加、PnP PowerShell・REST など UI 以外の経路を試す
  • 内部名の衝突・予約語・コンテンツタイプ(Sealed)・保持ラベル・レコード管理を確認する
  • 列数やルックアップ列が多すぎないか、1行あたりのサイズ制限に近づいていないかをチェックする
  • Power Apps カスタムフォームやビュー/インデックスの影響を疑い、既定フォーム・絞り込みビューで試す
  • 組織アカウントの場合は、Microsoft 365 管理センターからサポートにオンライン リクエストを起票する

特に、サイト列や PnP PowerShell を使った回避は、モダン UI に依存しない安定した方法です。今後も SharePoint Online はクラウド側の更新により UI が変わっていくため、「UI に頼らない設定手段」を手元に用意しておくことが、長期運用における大きな安心材料になります。

本記事の内容をもとに、自社の運用ルールやチェックリストを作成しておくと、同様のトラブルが起きたときにも落ち着いて対応できるはずです。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次