SharePointリストで列やビューの表示形式をJSONでカスタマイズした後、新しいアイテムの入力画面や編集画面が崩れてしまった経験はありませんか。入力フィールドが表示されなかったり、レイアウトが乱れたりすると、業務に大きな支障が出ます。この記事では、表示形式の変更が原因で入力画面が崩れた場合の直し方を、原因の切り分けから具体的な修正手順まで詳しく解説します。
【要点】この記事で確認すること
- 最初に見る場所: 問題が発生しているリストの「列の表示形式」と「フォームのカスタマイズ」設定です。Power Appsでカスタマイズしている場合は別の対応が必要です。
- 切り分けの軸: 表示形式のJSONコードに問題があるのか、それとも他の設定(列の必須条件やフォームのスクリプト)が原因なのかを分けて確認します。
- 注意点: 会社のSharePoint環境では、管理者がカスタムスクリプトを許可していない場合があります。また、JSONの構文ミスは全体に影響するため、修正前にバックアップを取ることをおすすめします。
ADVERTISEMENT
目次
入力画面が崩れる主な原因
表示形式を変更して入力画面が崩れる原因は、大きく分けて3つあります。それぞれの特徴を理解しておくと、素早く問題を特定できます。
JSONコードの構文エラー
表示形式に使用するJSONコードに、括弧の不一致や引用符の欠落などの構文エラーがあると、SharePointが正しく解釈できず画面表示が乱れます。特に、複数の列を参照する複雑なJSONを手書きした場合に発生しやすいです。
存在しない列名や無効なプロパティの指定
JSON内で参照している列名が実際の列と一致しない、または指定したプロパティ(色、アイコンなど)がその列のデータ型で使えない場合も表示が崩れます。例えば、日付列に背景色を指定しようとして誤ったプロパティ名を使うと、全体のレンダリングが停止することがあります。
表示形式とフォームのカスタマイズの競合
SharePointリストでは、列の表示形式(列のフォーマット)と、フォーム全体のカスタマイズ(Power Appsやフォームカスタマイザー)が両方設定されている場合があります。両者が干渉し合うと、入力画面が予期しない動作をします。特に、列の表示形式で入力フィールドを非表示にする設定をしていると、フォーム上でその列が完全に見えなくなることがあります。
表示形式の確認と修正手順
ここでは、問題の原因を特定し、表示形式を修正する具体的な手順を説明します。以下の順番で試してみてください。
- 問題が発生しているリストを開き、右上の歯車アイコンから「リスト設定」をクリックします。
- 「列」のセクションで、表示形式を変更した列をクリックして開きます。画面下部に「この列の書式設定」というセクションがあるので、そこにJSONコードが記載されています。
- JSONコードをすべて選択し、メモ帳などにコピーしてバックアップを取ります。その後、コードを削除して「保存」します。
- リストに戻り、新しいアイテムの追加画面や既存アイテムの編集画面を開いて、画面が正常に表示されるか確認します。正常になった場合は、JSONコードに問題があったことが確定します。
- コードを少しずつ修正しながら再度設定し、その都度画面を確認します。エラーの原因が特定できたら、正しいコードに置き換えて保存します。
もし列の表示形式をすべてリセットしても改善しない場合は、ビューの表示形式やフォームのカスタマイズを確認してください。ビューの表示形式は「現在のビューの書式設定」で確認できます。フォームのカスタマイズはリスト設定の「フォーム設定」から確認できます。
失敗パターンと回避方法
実際に起こりやすい失敗例とその回避方法を紹介します。
JSON内で条件分岐を使った際の誤動作
例えば、特定のユーザーのときだけ列を表示するような条件分岐を記述した場合、その条件に該当しないユーザーがフォームを開くと、列が非表示になり入力できなくなることがあります。これを避けるには、表示形式はあくまで表示のみに使い、入力の制御は別の方法(列の必須設定や権限)で行うようにします。
複数の列に同じJSONを適用した場合の競合
同じJSONコードを複数の列に適用した場合、特に列名をハードコードしていると、別の列でその列名が存在しなかったり、データ型が合わなかったりしてエラーが発生します。共有テンプレートを使う場合は、列名を動的に取得する関数(@currentField)を使うことを検討してください。
状況別の比較表
| 症状 | 考えられる原因 | 確認する場所 | 修正方法 |
|---|---|---|---|
| 入力画面が真っ白で何も表示されない | JSONの構文エラー、または列名の誤り | 該当列の表示形式設定 | JSONを削除して正常復帰を確認後、修正 |
| 特定の列だけ入力フィールドが表示されない | 表示形式で非表示設定(display: none)が指定されている | その列の書式設定 | JSON内の’display’プロパティを削除または変更 |
| 画面が崩れてスクロールできない | 表示形式で固定幅や高さの指定が過剰 | 列の表示形式、ビューの書式設定 | サイズ指定を外すか、レスポンシブに変更 |
管理者へ確認すべきこと
会社のSharePoint環境で表示形式をカスタマイズする場合、以下の点を事前に管理者に確認しておくとトラブルを避けられます。
- カスタムスクリプトが許可されているかどうか。許可されていない場合、JSONの表示形式が機能しないことがあります。
- リストのフォームにPower Appsが適用されている場合、表示形式のカスタマイズと競合する可能性があるため、管理者にフォームのカスタマイズ状態を確認してください。
- 列の表示形式を頻繁に変更する場合は、変更履歴を残すためにバージョン管理が有効になっているか確認しましょう。
よくある質問
Q. 表示形式を削除しても入力画面が直らない場合はどうすればよいですか?
A. その場合、フォームのカスタマイズ(Power Apps)や、リストに適用しているJavaScriptファイルなど、他のカスタマイズが原因の可能性があります。リスト設定の「フォーム設定」からカスタマイズをオフにして確認してください。また、ブラウザのキャッシュをクリアしてから再読み込みすることも試してみてください。
Q. 表示形式のJSONコードが正しいかどうかを事前にチェックする方法はありますか?
A. オンラインのJSONバリデーター(jsonlint.comなど)を使うと構文エラーを検出できます。また、Microsoftが提供するJSON Formatterツールを利用すると、SharePoint専用のサンプルと照らし合わせて確認できます。
Q. 表示形式の変更で入力画面が崩れた場合、他のユーザーにも影響が出ますか?
A. はい、影響は全ユーザーに及びます。編集権限があるユーザー全員の入力画面が同じように崩れます。そのため、修正中はリストの編集を一時的に制限するなどの対応が必要です。
まとめ
SharePointリストの表示形式を変更したことで入力画面が崩れた場合、最初に行うべきは該当列のJSONコードを削除して正常復帰を確認することです。構文エラーや列名の誤りが原因であることが多いため、コードを慎重に見直してください。表示形式以外のカスタマイズ(Power Appsなど)が競合している可能性も考慮し、必要に応じて管理者と連携しながら修正を進めましょう。日頃から表示形式の変更履歴を残しておくことで、トラブル時の復旧がスムーズになります。
超解決 リモートワーク研究班
Microsoft 365の導入・保守を専門とするエンジニアグループ。通信障害やサインイン不具合など、ビジネスインフラのトラブル対応に精通しています。
Office・仕事術の人気記事ランキング
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Excel】文字が入っているセルの「個数」を数える!COUNTA関数の簡単な使い方
- 【Word】校閲機能の基本!赤字(変更履歴)とコメントで修正を見える化する
- 【PDF】PDFに入力した文字の「フォント・サイズ・色」を変更するプロパティ設定
- 【Copilot】「サービスに接続できません」エラーの原因切り分けと対処法
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Teams】画面共有時に「音声」も共有する方法!音が流れない時の設定手順
