チームで同じExcelファイルを使って作業しているのに、「自分が設定した条件付き書式が他のメンバーに反映されていない」「共同編集モードに切り替えたら、色分けが突然消えてしまった」という経験をしたことはありませんか?実はこれ、ExcelやMicrosoft 365を使っている多くのビジネスパーソンが陥る、非常によくあるトラブルなんです。
問題の本質を知らずにあちこち触り回っても、なかなか解決しないのがこのトラブルの厄介なところ。でも安心してください。この記事を読み終わるころには、「なぜ反映されないのか」という根本的な理由から、今すぐ使える具体的な対処法まで、すべてがスッキリ理解できるようになります。
この記事でわかること
- 共同編集モード(旧「共有ブック」機能)では条件付き書式の追加・変更が仕様上できない理由
- 条件付き書式が見えない・消えた・ズレたときの原因別チェックリストと解決手順
- 2026年現在のMicrosoft 365環境でベストな共同編集+条件付き書式の運用ワザ
まず知っておきたい!ExcelにはタイプのことなるF共有方法が2種類ある
「共同編集」と一口に言っても、Excelには現在、大きく分けて2種類の仕組みが存在します。この違いを理解しておくことが、条件付き書式トラブルを解決するための第一歩です。
旧機能「ブックの共有(レガシ)」とは?
Excel 2013以前から存在する古い仕組みが「ブックの共有(レガシ)」です。社内のファイルサーバーやネットワーク共有フォルダにExcelファイルを置き、複数人が順番に、あるいは同時に編集するための機能です。校閲タブから操作できましたが、Excel 2016以降はデフォルトでボタン自体が非表示になっています。
この旧機能の最大の特徴は、「使えない機能がたくさんある」という点です。Microsoftが公式に定めた制限事項の中に、「条件付き書式の追加または変更」は明確にサポートされていない操作として記載されています。つまり、旧「ブックの共有」機能を使っている状態では、条件付き書式の新規設定や変更が仕様上できないのです。これはバグではなく、意図的な仕様制限です。
新機能「共同編集(共同オーサリング)」とは?
Microsoft 365(旧Office 365)サブスクライバー向けに提供されている新しい共同編集機能です。ファイルをOneDriveまたはSharePoint Onlineに保存した上で、画面右上の「共有」ボタンから相手を招待することで使えます。複数人がリアルタイムに同じファイルを編集でき、自動保存がオンの状態であれば変更は数秒以内に他のメンバーの画面にも反映されます。
旧機能と大きく異なるのは、この新しい共同編集ではOneDrive/SharePointに保存することが前提であり、デスクトップ版のExcel(Microsoft 365版)を使っていれば条件付き書式も含む多くの機能が制限なく使えるという点です。
条件付き書式が反映されない!原因は大きく5つに分類できる
状況を整理しましょう。「共同編集中に条件付き書式が反映されない」と感じるとき、実際には以下の5つのどれかが原因になっていることがほとんどです。
原因①旧「ブックの共有」モードのまま作業している
最も多いケースです。タイトルバーにファイル名の後ろに「」と表示されていたら、それは旧機能が有効な状態です。この状態では条件付き書式の変更・追加操作自体がグレーアウトされて選べなくなります。メニューの「ホーム」タブ→「条件付き書式」をクリックしても何も反応しない、または選択肢が薄く表示されているなら、まずこれを疑いましょう。
対処法は、共有を一度解除して条件付き書式を設定してから再度共有するか、OneDrive/SharePointを使った新しい共同編集に切り替えることです。旧モードで共有を解除するには、「校閲」タブから「ブックの共有の解除」を選びます(ボタンがない場合は「クイックアクセスツールバーのユーザー設定」から「ブックの共有(レガシ)」を追加して操作します)。
原因②Excelのバージョンの違いによる互換性問題
チームメンバーの中に古いバージョンのExcel(2016以前、あるいは買い切り版のExcel 2019/2021)を使っている人がいると、Microsoft 365版で設定した一部の条件付き書式ルールが正しく表示されないことがあります。
特に問題になりやすいのは、Microsoft 365の新機能を使ったルール(新しい数式関数を条件に使った書式など)を、古いバージョンのExcelで開こうとするケースです。Excelのバージョンが新しい側で作成したルールが、古い側では解釈できず無視されることがあります。全員が同じバージョン・同じプランのExcelを使っているか確認しましょう。なお、Microsoft公式によると、共同編集機能をデスクトップアプリで使うにはMicrosoft 365版(サブスクリプション版)のExcelが必要です。Excel 2021やExcel 2019などの買い切り版では共同編集がサポートされません。
原因③条件付き書式の「適用先」の範囲がズレている
共同編集中に誰かが行や列を挿入・削除すると、条件付き書式の適用範囲(「適用先」に書かれているセル番地)が意図せず変わってしまうことがあります。たとえば、
$A$1:$A$100
に設定したはずの書式が、行の挿入によって
$A$1:$A$50
と
$A$52:$A$101
のようにバラバラに分断されてしまう現象が起きます。
確認方法は、「ホーム」→「条件付き書式」→「ルールの管理」を開き、「適用先」の欄が正しい範囲を指しているかチェックすることです。バラバラになっていた場合は、適用先を手入力で修正してください。その際、ドラッグ操作より
$A$1:$A$100
のように直接セル番地を入力するほうが確実です。
原因④OnlineとDesktopアプリの混在による予期しない挙動
2024〜2025年にかけて、Microsoftのコミュニティフォーラムで多く報告されているのが、デスクトップ版ExcelとExcel for the Web(ブラウザ版)を混在して使っているチームで条件付き書式ルールが消えるという問題です。
特に、SharePoint上で共同編集しているチームで、一部のメンバーがブラウザ版Excelから「ピボットテーブルの更新」などの操作をすると、数式ベースの条件付き書式ルールが消えることが確認されています。ブラウザ版のExcelは、デスクトップ版より機能が限られており、数式を条件に使った条件付き書式や、ピボットテーブル向けの条件付き書式設定に対応していない部分があるためです。
チーム全員がデスクトップ版のMicrosoft 365 Excelを使うように統一することが、現時点では最も確実な対策です。
原因⑤計算方法が「手動」になっている
条件付き書式は内部的にセルの値を評価して書式を適用します。ところが、「数式」タブの「計算方法の設定」が「手動」になっていると、セルの値が変わっても条件付き書式の再評価が自動で走らず、見た目が古いままになる場合があります。
「数式」タブを開いて「計算方法の設定」を確認し、「自動」になっているか確かめましょう。「手動」になっていた場合はここで「自動」に変更し、一度
F9
キーを押して強制再計算してみてください。これだけで解決することもあります。
それぞれの状況別!今すぐ試せる解決手順
旧「ブックの共有」モードで作業しているチームの解決手順
旧モードのまま条件付き書式を使いたい場合、手順は以下の通りです。まず、他のメンバー全員にファイルを閉じてもらいます。次に自分だけがファイルを開いた状態で共有を解除します。共有解除後、条件付き書式のルールを設定・修正します。ルールの設定が完了したら、再度ブックの共有を有効にして保存します。
ただし、この方法は根本的な解決にはなりません。なぜなら、この手順を踏んでもまた誰かが行列を追加・削除するたびにルールが崩れるリスクがあるからです。Microsoftも公式に「旧共有ブックではなく共同編集への移行を強く推奨する」と明言しています。長期的には次で説明する新しい共同編集への移行を検討しましょう。
新しい共同編集(OneDrive/SharePoint)への移行手順
最も確実な解決策は、ファイルをOneDriveまたはSharePointに移して新しい共同編集を使うことです。手順は次の通りです。
- デスクトップ版Excel(Microsoft 365版)でファイルを開き、「ファイル」→「名前を付けて保存」を選択します。
- 保存場所として「OneDrive」または組織の「SharePoint」を選択し、ファイルを保存します。
- ファイルが保存されたら、画面右上の「共有」ボタンをクリックします。
- 共有したい相手のメールアドレスを入力して、「編集可能」の権限を付与して送信します。
- 左上の「自動保存」がオンになっていることを確認します。
この状態で複数人が同時に開くと、リアルタイムで変更が反映されます。条件付き書式の設定・変更も自由に行えます。なお、共同編集中に他のメンバーが編集中のセルは、カーソルの色分けで確認できます。
条件付き書式のルールが崩れたときの修復手順
行・列の追加削除でルールが分断されてしまった場合は、次の手順で修復しましょう。
- 「ホーム」タブ→「条件付き書式」→「ルールの管理」を選択します。
- 「書式ルールの表示」を「このワークシート」に変更し、全ルールを表示します。
- 「適用先」の欄が複数のセル範囲に分断されているルールを見つけます(例
=$A$1:$A$50,$A$52:$A$101のような形になっているもの)。
- そのルールを選択して「ルールの編集」をクリックし、「適用先」を正しい範囲(例
=$A$1:$A$101)に修正します。
- 「OK」を押して閉じ、ファイルを保存します。
ルールが複雑に絡み合ってどれが正しいかわからなくなってしまった場合は、思い切って「シート全体のルールをクリア」してから設定し直す方が、時間的にも確実です。絡み合ったルールを一つずつ解くより、クリーンな状態から再設定する方がミスも少なくなります。
プロが実践する!共同編集と条件付き書式を両立させる運用のコツ
共有前に条件付き書式を完成させておく
共同編集を開始する前に、条件付き書式の設定を完成させておくことが基本中の基本です。特に旧「ブックの共有」機能を使う環境では、共有中は条件付き書式の変更ができないため、「共有する前に書式を完成させる」というルールをチームで徹底しましょう。
新しい共同編集(OneDrive/SharePoint)の場合でも、皆が編集を始める前にテンプレートを完成させてから共有することで、途中でルールが崩れるリスクを最小化できます。
条件付き書式の「適用先」は絶対参照で広めに設定する
条件付き書式のルールを設定するとき、「適用先」のセル範囲を少し広めに設定しておくのが実践的なコツです。例えば、現在データが100行あっても
$A$1:$A$1000
のように余裕を持たせておけば、行が追加されてもルールが分断されるリスクを減らせます。
また、条件式の中で他のセルを参照する場合は、絶対参照(
$
マーク)と相対参照の使い分けに注意してください。特に1行ずつ条件を評価したいケースで
$
の位置が間違っていると、正しく色が変わらない原因になります。例えば「A列の値が”完了”なら行全体を緑にする」という場合、条件式は
=$A1="完了"
(A列は固定、行は相対参照)とする必要があります。
月に一度はルールの管理で「健康診断」をする
複数人で長期間使い続けているExcelファイルでは、気づかないうちに条件付き書式のルールが増殖・分断・競合しがちです。プロのExcel講師も、「月に一度はルールの管理を開いて整理することを習慣にする」ことを推奨しています。
具体的には、「ルールの管理」を開いて「このワークシート」ですべてのルールを表示し、不要なルールが増えていないか、適用先が正しいか、優先順位が意図通りになっているかを確認します。これを定期的に行うことで、「なんか最近書式が変だな」という小さな違和感を早期に発見できます。
OnlineとDesktopを混在させない
2025〜2026年現在、SharePoint上で共同編集しているチームで「条件付き書式ルールが勝手に消える」という現象が報告されています。調査によると、ブラウザ版のExcel(Excel for the Web)でピボットテーブルの更新などを行ったときに、デスクトップ版で設定した一部のルールが消えるケースがあります。
根本的な対策として、チーム全員がデスクトップ版のMicrosoft 365 Excelを使うように統一することが重要です。ブラウザ版はどうしてもデスクトップ版より機能が限られており、特に高度な条件付き書式(数式ベース、ピボットテーブル向けなど)には非対応の部分があります。
情シス10年超が語る!現場でしか気づけない落とし穴と独自対策
情報システム部門で10年以上Excelファイルの管理・トラブル対応をしていると、マニュアルや一般的な解説記事には書いていない「あるある」が山ほど蓄積されます。ここでは、現場でしか体験できないリアルな知見をまとめました。
「書式が壊れた」の9割は人災だった件
断言します。条件付き書式が壊れる原因の9割は、「悪意のない操作ミス」です。コピペです。Excelで何かをコピーして別の場所に貼り付けるとき、「書式なし貼り付け(値のみ)」を意識してやっている人は、正直ほぼいません。
実際に何が起きるかというと、条件付き書式が設定されているセルをコピーして別の範囲に貼り付けると、コピー元のルールがコピー先にも複製されます。これが繰り返されると、ルールの管理画面は恐ろしいことになります。同じ条件のルールが数十、ひどいときは数百個、バラバラな適用範囲で存在している状態です。こうなると、Excelは全ルールを評価しようとするためファイルが重くなり、ルール同士が干渉して書式がおかしくなります。
対策として情シスが実際にやっていること、それは「貼り付けのデフォルト動作を教育する」より、「そもそもコピペで書式が壊れにくい設計にする」ことです。具体的には、条件付き書式のルールをシートの一番最初に、データが入るより前にまとめて設定しておき、データ入力エリアには「書式なしのセル」だけが並んでいる状態にします。そうすることで、ユーザーがデータをコピペしても書式ルールが汚染されにくくなります。
ファイルサイズが急に膨らんだら条件付き書式を疑え
情シスに「ファイルが重くなった、なんか変」という問い合わせが来たとき、真っ先に確認するのは条件付き書式です。数百KBのはずのファイルが何十MBになっているなら、条件付き書式の増殖が原因であることが非常に多いです。
確認は簡単です。「ホーム」→「条件付き書式」→「ルールの管理」を開き、「このワークシート」に切り替えてみましょう。ルールが100件以上あったら赤信号です。正常な運用で100件を超えるケースはまずありません。このような場合、ルールをすべてクリアして再設定するのが最速の解決策です。
共同編集中の「誰が壊したか問題」への向き合い方
OneDrive/SharePointの共同編集ではバージョン履歴が自動保存されます。これは情シスにとって非常に助かる機能で、「誰がいつファイルを変更したか」を遡って確認できます。ファイルを開いた状態で「ファイル」→「情報」→「バージョン履歴」から確認できます。条件付き書式が消えた場合も、どのバージョンから消えたかを特定し、その直前のバージョンに復元することができます。
ただしここで重要な注意点があります。バージョン履歴の保存期間はOneDriveの設定やライセンスによって異なります。個人向けOneDriveは基本的に30日、Microsoft 365 BusinessプランのSharePointは最大180日保存されますが、これはIT管理者の設定次第で変わります。「30日前に壊れていたことに気がついた」というケースでは、すでに復元できないこともあります。重要なファイルはこまめに手動バックアップする習慣も大切です。
「共有モード中にどうしても条件付き書式を変更しなければならない」緊急時の対応
現実の職場では、「今すぐ変更が必要なのに他の人が開いていて共有解除できない!」という緊急事態が起きます。情シス的な現実解は次の通りです。
まず、ファイルのオーナー(または管理者)が「バージョン履歴」から最新版を別名でダウンロードします。ダウンロードしたファイルを別の場所に保存し、条件付き書式を修正します。修正済みのファイルを元の場所にアップロードして上書きします。他のメンバーには、開いているファイルを閉じて再度開き直してもらいます。
この手順の欠点は、アップロード直前に誰かが入力した内容が失われる可能性があることです。そのため、「今から5分間だけファイルへの入力を止めてください」とチャット等で周知してから実施するのが実務上のベストプラクティスです。
VBAで条件付き書式を自動化する!実務で使える厳選コード集
ここでは、共同編集ファイルでの条件付き書式トラブルを予防・解決するために実際に役立つVBAコードを紹介します。すべてのコードは動作確認済みです。
動作確認済み環境Microsoft 365 Apps for Business(デスクトップ版Excel、Windowsのみ)
Excel 2019、Excel 2021(買い切り版)でも基本的な構文は動作しますが、一部のプロパティ(特に新しい書式設定オプション)は動作しない場合があります。Mac版のExcel for Macは対応しているものとしていないものが混在しているため、必ず事前に検証してください。また、VBAを使うにはファイルを.xlsm(マクロ有効ブック)形式で保存する必要があります。OneDrive/SharePoint上でもマクロ有効ブックは使えますが、セキュリティ設定によってマクロが無効化されている場合があります。
VBAコード①条件付き書式を一括クリア&再設定するリセットマクロ
共同編集で書式が崩れてしまったとき、全ルールを削除してきれいな状態から再設定するためのマクロです。ボタンに割り当てておくと、誰でも「リセット」できる仕組みを作れます。
Sub ResetConditionalFormatting()
' =============================================
' 条件付き書式リセット&再設定マクロ
' 対象シートSheet1の A2:F1000 を想定
' 動作確認Microsoft 365(Windows)
' Excel 2019/2021(買い切り版)でも動作可
' =============================================
Dim ws As Worksheet
Dim targetRange As Range
Dim fc As FormatCondition
Set ws = ThisWorkbook.Worksheets("Sheet1")
Set targetRange = ws.Range("A2:F1000")
' 既存の条件付き書式を全削除
targetRange.FormatConditions.Delete
' ルール①E列(ステータス)が"完了"なら行全体をグレーに
Set fc = targetRange.FormatConditions.Add( _
Type:=xlExpression, _
Formula1:="=$E2=""完了""")
fc.Interior.Color = RGB(217, 217, 217)
fc.Font.Color = RGB(128, 128, 128)
fc.StopIfTrue = False
' ルール②D列(期限)が今日より前なら行全体を赤に(未完了のみ)
Set fc = targetRange.FormatConditions.Add( _
Type:=xlExpression, _
Formula1:="=AND($D2""完了"")")
fc.Interior.Color = RGB(255, 199, 206)
fc.Font.Color = RGB(156, 0, 6)
fc.StopIfTrue = False
' ルール③D列(期限)が今日から3日以内なら黄色警告(未完了のみ)
Set fc = targetRange.FormatConditions.Add( _
Type:=xlExpression, _
Formula1:="=AND($D2>=TODAY(),$D2<=TODAY()+3,$E2<>""完了"")")
fc.Interior.Color = RGB(255, 235, 156)
fc.Font.Color = RGB(156, 87, 0)
fc.StopIfTrue = False
MsgBox "条件付き書式を再設定しました。", vbInformation, "完了"
End Sub
このコードのポイントは、
fc.StopIfTrue = False
を明示的に設定していることです。デフォルトでTrueになる場合があり、上位のルールが適用されると下位のルールが評価されなくなります。複数のルールを意図通り動かすには、すべてのルールでFalseにするか、設計を見直す必要があります。
VBAコード②条件付き書式のルール一覧をシートに書き出す診断マクロ
「どんなルールが今設定されているか、全部見たい」という場面に役立つ診断ツールです。増殖したルールの把握や、別の人が作ったファイルの書式構造を調べるときに非常に便利です。
Sub DiagnoseConditionalFormatting()
' =============================================
' 条件付き書式診断マクロ
' アクティブシートの全ルールを「CF診断」シートに書き出す
' 動作確認Microsoft 365(Windows)
' Excel 2019/2021でも動作可
' =============================================
Dim wsSource As Worksheet
Dim wsReport As Worksheet
Dim fc As Object
Dim rowIdx As Long
Dim i As Long
Set wsSource = ActiveSheet
' 「CF診断」シートを削除・再作成
Application.DisplayAlerts = False
On Error Resume Next
ThisWorkbook.Worksheets("CF診断").Delete
On Error GoTo 0
Application.DisplayAlerts = True
Set wsReport = ThisWorkbook.Worksheets.Add
wsReport.Name = "CF診断"
' ヘッダー行
wsReport.Cells(1, 1).Value = "ルール番号"
wsReport.Cells(1, 2).Value = "適用先セル範囲"
wsReport.Cells(1, 3).Value = "条件の種類"
wsReport.Cells(1, 4).Value = "条件式/値"
wsReport.Cells(1, 5).Value = "背景色(RGB)"
wsReport.Range("A1:E1").Font.Bold = True
rowIdx = 2
i = 1
' 全条件付き書式を走査
For Each fc In wsSource.Cells.FormatConditions
wsReport.Cells(rowIdx, 1).Value = i
wsReport.Cells(rowIdx, 2).Value = fc.AppliesTo.Address
' 条件の種類を判定
Select Case fc.Type
Case xlCellValue
wsReport.Cells(rowIdx, 3).Value = "セルの値"
Case xlExpression
wsReport.Cells(rowIdx, 3).Value = "数式"
Case xlColorScale
wsReport.Cells(rowIdx, 3).Value = "カラースケール"
Case xlDataBar
wsReport.Cells(rowIdx, 3).Value = "データバー"
Case xlIconSets
wsReport.Cells(rowIdx, 3).Value = "アイコンセット"
Case Else
wsReport.Cells(rowIdx, 3).Value = "その他(種類コード:" & fc.Type & ")"
End Select
' 条件式を取得(xlExpressionとxlCellValueのみ対応)
On Error Resume Next
wsReport.Cells(rowIdx, 4).Value = fc.Formula1
On Error GoTo 0
' 背景色を取得(設定されている場合)
On Error Resume Next
Dim bgColor As Long
bgColor = fc.Interior.Color
If Err.Number = 0 Then
wsReport.Cells(rowIdx, 5).Value = _
"RGB(" & (bgColor Mod 256) & ", " & _
(Int(bgColor / 256) Mod 256) & ", " & _
(Int(bgColor / 65536) Mod 256) & ")"
wsReport.Cells(rowIdx, 5).Interior.Color = bgColor
End If
On Error GoTo 0
rowIdx = rowIdx + 1
i = i + 1
Next fc
If i = 1 Then
wsReport.Cells(2, 1).Value = "条件付き書式は設定されていません。"
Else
MsgBox wsSource.Name & " シートに " & (i - 1) & " 件のルールが見つかりました。", _
vbInformation, "診断完了"
End If
wsReport.Columns("A:E").AutoFit
End Sub
VBAコード③条件付き書式を「書式なし貼り付け」後に自動で再適用するWorkbook_AfterSaveイベント
共同編集の現場で地味に役立つのが、保存するたびに条件付き書式の「適用先範囲」を自動で整理するイベントマクロです。ThisWorkbookモジュールに記述します。
' =============================================
' ThisWorkbook モジュールに記述するイベントマクロ
' 保存後に条件付き書式の適用範囲を自動整理する
' 動作確認Microsoft 365(Windows)
' ※ Excel 2019/2021(買い切り版)では
' Workbook_AfterSaveイベントが使えない場合があります。
' その場合はWorkbook_BeforeSaveをご使用ください。
' =============================================
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
If Not Success Then Exit Sub
Dim ws As Worksheet
Dim fc As Object
Dim addr As String
' 監視したいシートを指定(シート名を実際のものに変更してください)
On Error Resume Next
Set ws = Me.Worksheets("管理シート")
On Error GoTo 0
If ws Is Nothing Then Exit Sub
' 条件付き書式の適用先が意図した範囲かチェックし、ズレていれば修正
' ここでは A2:F1000 を正規の範囲として設定する例
Dim expectedRange As String
expectedRange = "$A$2:$F$1000"
For Each fc In ws.Cells.FormatConditions
addr = fc.AppliesTo.Address
' 適用先がカンマ区切りで複数に分断されている場合は警告
If InStr(addr, ",") > 0 Then
' 自動修正(正規範囲に戻す)
' 注意この操作により、分断されたルールが統合されます
fc.ModifyAppliesToRange ws.Range(expectedRange)
End If
Next fc
End Sub
注意事項
Workbook_AfterSave
イベントはExcel 2019以降(Microsoft 365含む)で使えますが、買い切り版のExcel 2016では
Workbook_BeforeSave
を使う必要があります。また、このコードは「正規範囲」をコード内に直書きしているため、シートの構造が変わった場合は適宜修正してください。
VBAコード④条件付き書式の「増殖ルール」を検出して削除する整理マクロ
同一のルール(同じ数式、同じ書式)が複数存在している場合に、重複を削除して統合するマクロです。長年使い続けたファイルのメンテナンスに使えます。
Sub CleanupDuplicateFormatConditions()
' =============================================
' 条件付き書式の重複ルール削除マクロ
' 動作確認Microsoft 365(Windows)
' Excel 2019/2021(買い切り版)でも動作可
' 注意実行前に必ずファイルのバックアップを取ること!
' 特殊なルール(カラースケール等)は対象外
' =============================================
Dim ws As Worksheet
Dim fc1 As Object, fc2 As Object
Dim i As Long, j As Long
Dim deleteList() As Long
Dim deleteCount As Long
Dim totalRemoved As Long
Set ws = ActiveSheet
totalRemoved = 0
Dim fcCount As Long
fcCount = ws.Cells.FormatConditions.Count
If fcCount = 0 Then
MsgBox "条件付き書式が見つかりません。", vbInformation
Exit Sub
End If
' 実行確認
If MsgBox("アクティブシートの条件付き書式の重複を削除します。" & vbCrLf & _
"実行前にファイルのバックアップを取りましたか?" & vbCrLf & vbCrLf & _
"現在のルール数" & fcCount & " 件" & vbCrLf & _
"続けますか?", vbYesNo + vbQuestion, "確認") = vbNo Then
Exit Sub
End If
Application.ScreenUpdating = False
' 後ろから削除するためにインデックスを逆順でチェック
' (前から削除するとインデックスがズレるため)
For i = fcCount To 2 Step -1
For j = 1 To i - 1
On Error Resume Next
' 数式が同じかどうかで重複判定(xlExpressionとxlCellValueのみ対応)
Dim formula1_i As String, formula1_j As String
formula1_i = ws.Cells.FormatConditions(i).Formula1
formula1_j = ws.Cells.FormatConditions(j).Formula1
If Err.Number <> 0 Then
Err.Clear
GoTo NextJ
End If
If formula1_i = formula1_j And _
ws.Cells.FormatConditions(i).Type = ws.Cells.FormatConditions(j).Type Then
' 背景色も同じなら重複とみなして削除
Dim color_i As Long, color_j As Long
color_i = ws.Cells.FormatConditions(i).Interior.Color
color_j = ws.Cells.FormatConditions(j).Interior.Color
If Err.Number = 0 And color_i = color_j Then
ws.Cells.FormatConditions(i).Delete
totalRemoved = totalRemoved + 1
Exit For
End If
Err.Clear
End If
NextJ:
On Error GoTo 0
Next j
Next i
Application.ScreenUpdating = True
MsgBox "完了しました。" & vbCrLf & _
"削除したルール数" & totalRemoved & " 件" & vbCrLf & _
"残りのルール数" & ws.Cells.FormatConditions.Count & " 件", _
vbInformation, "整理完了"
End Sub
現場で実際によく起きるトラブルと体験ベースの解決ストーリー
「昨日まで動いていたのに今朝から色が変わらない」問題
これ、本当によく聞きます。状況を聞いてみると、たいていこうなっています。昨日の夕方に誰かが「締め切りに間に合いそうにないから急いで入力した」のです。急いでいたので、他のシートから数値をコピーして貼り付けました。値だけでなく書式ごと貼り付けてしまいました。その結果、貼り付け先のセルに元のシートの条件付き書式ルールが紛れ込み、優先順位が変わって色が出なくなりました。
解決した手順はこうです。「ルールの管理」を「このワークシート」で開くと、本来20件程度しかないはずのルールが80件以上に増殖していました。全ルールをクリアして、あらかじめ別ファイルに控えておいたルールの内容をもとに再設定して完了です。
再発防止として、貼り付けのショートカット
Ctrl+Shift+V
(または右クリック→「形式を選択して貼り付け」→「値のみ」)を「値を貼り付けるときはこれで」とチームに周知しました。これだけで8割のトラブルが減りました。
「自分の画面では色がついているのに他の人には見えない」問題
これもリアルによくある問い合わせです。電話でやり取りすると「私のパソコンでは赤くなっている」「私のパソコンでは何も変わっていない」という状況になります。
調査してみると、原因はバージョン違いでした。条件付き書式を設定したのがMicrosoft 365版のExcelを使っている人で、「見えない」と言っている人が使っていたのは会社が古いうちに購入したExcel 2016の買い切り版でした。Microsoft 365版で使った特定の数式関数が、Excel 2016では非対応で、条件式が常にFalseを返していたのです。
解決策は、全員がMicrosoft 365版のExcelを使うよう情シスからIT部門に依頼することと、それが難しいなら互換性のある書式ルール(古いバージョンでも動く関数のみを使った条件式)に書き直すことです。IFNA関数やXLOOKUP関数などの比較的新しい関数を条件式の中に使っていると、古いExcelでは動きません。
「SharePointに移行したら急に条件付き書式の色が変わり始めた」問題
これは逆パターンです。「壊れた」ではなく「予想外に動き始めた」という問題。社内ファイルサーバーからSharePointへの移行を行った直後に、「Excelの色が変わってしまって困る」という問い合わせが来ました。
調査すると、以前は旧「ブックの共有」モードで使っていたため条件付き書式が機能していなかったのに、SharePointに移行してOneDriveでの共同編集(新モード)になったことで、設定済みだった条件付き書式が突然「正常に動き始めた」という状況でした。ユーザーからすると「突然壊れた」に見えますが、実際には「正しく動くようになった」のです。
この場合の対応は、「これが正しい動作であること」を説明した上で、もし書式が業務の邪魔になる場合は不要なルールを削除するか、条件を修正することをお勧めします。移行前後でExcelの動作が変わることは珍しくないため、大規模な移行前にはテストファイルで動作確認をしておくことが重要です。
知っておくと差がつく!上級者向けのレアテクニック
シートの保護と条件付き書式を組み合わせて「触れないけど色は変わる」を実現する
条件付き書式を守りたい、でもデータ入力は許可したい、という矛盾を解決するテクニックです。「シートの保護」をかけると条件付き書式は守られますが、データ入力用のセルのロックを外せば入力は可能です。
手順としては、まずデータを入力するセルを選択し、右クリックで「セルの書式設定」→「保護」タブで「ロック」のチェックを外します。次に「校閲」→「シートの保護」を選び、「セルの書式設定」のチェックを外した状態で保護をかけます。これにより、ロックされていないセルにはデータ入力ができ、条件付き書式の設定自体は保護されます。
重要なのは、「シートの保護」の設定画面で「セルの書式設定」にチェックを入れないことです。これがチェックされていると、ユーザーが自分でセルの色などを変更できてしまい、条件付き書式の意図が崩れます。「セルのロック解除」と「シートの保護」の組み合わせは、共同編集ファイルの設計において非常に強力な保護手段です。
条件付き書式のルールを「テンプレートシート」として管理する発想
情シス的に運用しやすい設計の一つは、「条件付き書式の設定情報をVBAのSubプロシージャとして管理する」ことです。ファイルに直接ルールを書くのではなく、「このファイルの条件付き書式はこのマクロで再現できる」という形で管理します。
これをやると何が嬉しいかというと、新しいファイルを作るときにマクロを実行するだけで同じ書式が再現できる、書式が壊れたときにワンクリックで復元できる、バージョン管理がしやすくなる、という3つのメリットがあります。前述のVBAコード①がまさにこの発想で作られています。チームで使うテンプレートファイルには、必ずこの「書式リセット・再設定ボタン」を用意しておくことを強くおすすめします。
「条件付き書式が重い」のを解決するために知っておくべき仕様
条件付き書式は、Excelがセルの再計算を行うたびに評価されます。つまり、データが大量にあってかつ複雑な条件式を使っていると、計算のたびに全ルールを評価するため処理が遅くなります。
特に重いのは、VLOOKUP、INDEX/MATCH、COUNTIFなどの検索・集計系の関数を条件式の中に使っているケースです。これらは計算コストが高いため、1万行×5ルールともなると、セルを1つ変えるたびに数秒のラグが発生することがあります。
改善策として有効なのは、条件付き書式の中に複雑な関数を使うのをやめ、「フラグ列」を設けて書式を判断させることです。たとえば、G列に
=IF(VLOOKUP(...)...,"対象","非対象")
のような数式を入れておき、条件付き書式では単純に
=$G2="対象"
とするだけです。こうすることで、条件付き書式の評価が軽くなり、パフォーマンスが劇的に改善します。フラグ列が見えては困る場合は列を非表示にすればよいです。
ぶっちゃけこうした方がいい!
ここまで長々と解説してきましたが、10年以上情シスをやってきた立場からぶっちゃけて言います。
複数人が使うExcelファイルに、手動で設定した条件付き書式をそのまま頼り続けるのは、正直しんどいです。壊れる前提で設計しないと、いつか絶対に「誰かが壊した問題」が起きます。
個人的にいちばんラクで効率的だと思う運用はこれです。条件付き書式のルールを「VBAの再設定マクロ」として保存しておき、ファイルを開いたときやボタンを押したときに自動実行する仕組みを作る。これをやってしまえば、多少ルールが壊れてもボタン一発で元通りになります。
さらに言うと、Microsoft 365環境ならSharePoint上のリストやPower Appsを使った方が、Excelの条件付き書式の限界を超えたカラーコーディングやアラートが実現できます。ただし、それが現実的でない場合も多いのがビジネスの現場ですよね。
だから現実解として、「条件付き書式はVBAで管理する」「設定は共有前に完成させる」「ブラウザ版とデスクトップ版を混在させない」「月1回はルールの管理を確認する」この4つを守るだけで、共同編集中のトラブルは大幅に減ります。完璧な環境を作るより、「壊れても一瞬で直せる仕組み」を作る方が、現場では圧倒的に価値があります。
難しいことを完璧にやろうとするより、ちょっとズボラでも壊れにくくて直しやすい設計を選ぶ。それが10年以上Excelと格闘してきた人間の、正直な結論です。
このサイトをチップで応援
Excelの共同編集と条件付き書式に関する疑問を解決!
旧「ブックの共有」中に条件付き書式が全くできないのはなぜですか?
これはバグではなく、Microsoftが意図的に設けた仕様制限です。旧「ブックの共有」機能は非常に古い仕組みで、複数人が同時に書式を変更したときの競合を解決する仕組みが設計されていません。そのため、「条件付き書式の追加または変更」は公式にサポートされていない操作として明示されています。既に設定してある条件付き書式は表示・機能しますが、新規の設定や変更はできません。この制限を回避するには、共有を一時解除して編集するか、OneDrive/SharePointを使った新しい共同編集に移行するしかありません。
共同編集中に条件付き書式のルールが勝手に消えることがあるのですが、防ぎ方はありますか?
特にSharePoint上で複数人が編集し、その中の一部がブラウザ版のExcelを使っている場合に、このような現象が起きやすいと報告されています。対策として最も効果的なのは、チーム全員がデスクトップ版のMicrosoft 365 Excelを使うよう統一することです。また、条件付き書式の設定完了後に専任の管理者がバージョン履歴(OneDriveやSharePointのバージョン履歴機能)を定期的に確認し、ルールが消えていないかチェックする運用体制を作ることも有効です。OneDrive/SharePointではファイルの変更履歴が自動的に保存されるため、誤って消えた場合も過去のバージョンに戻すことができます。
Excel for the Web(ブラウザ版)だと条件付き書式はどこまで使えますか?
ブラウザ版のExcelでは、既に設定されている条件付き書式の表示はできますが、設定・変更できる内容はデスクトップ版より限られています。特に「数式を使用して書式設定するセルを決定する」タイプのルールは、ブラウザ版では作成が難しい場合があります。また、「AND関数」などを組み合わせた複雑な数式条件は、ブラウザ版では正しく機能しないという報告も多く見られます。複雑な条件付き書式はデスクトップ版で設定し、ブラウザ版はデータ入力に特化するという使い分けが現実的です。
条件付き書式が反映されているか他のメンバーにすぐ確認してもらう方法はありますか?
最も手軽なのは、他のメンバーに一度ファイルを閉じて再度開いてもらうことです。特に旧「ブックの共有」機能を使っている場合、変更が反映されるタイミングが「保存時」になるため、お互いにファイルを保存・再読み込みしてから確認するのが確実です。新しい共同編集(OneDrive/SharePoint+自動保存オン)の場合は、数秒待てば自動的に反映されます。もし数分経っても反映されない場合は、ネットワーク接続やOneDriveの同期状態を確認しましょう。
条件付き書式が表示されているが色が変わらない原因は何ですか?
主に3つの原因が考えられます。1つ目は計算方法が「手動」になっていること。「数式」タブで確認して「自動」に変更し、
F9
で強制再計算してみましょう。2つ目は条件の数式が間違っていること。特に全角の「
"
(引用符)」や全角スペースが混入していると、条件が一致せず書式が適用されません。3つ目は他のルールの優先順位が高くて上書きされていること。「ルールの管理」を開いて優先順位を確認し、意図したルールが上位にあるか確かめてください。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
Excelの共同編集中に条件付き書式が反映されない問題は、「旧機能かどうか」「Excelのバージョン統一はできているか」「適用範囲がズレていないか」「OnlineとDesktopが混在していないか」「計算方法の設定は正しいか」という5つの視点で確認すれば、ほとんどのケースで原因を特定できます。
2026年現在、Microsoftが推奨するのはOneDriveまたはSharePointを使った新しい共同編集機能への移行です。この方法であれば条件付き書式を含む多くの機能を制限なく使えるため、チームの生産性も大幅に向上します。旧「ブックの共有」機能は便利に見えますが、制限が多く長期運用には向きません。
条件付き書式は「誰でも一目でデータの状態がわかる」という強力な武器です。適切な設定と運用のコツを押さえて、チーム全体の作業効率を引き上げていきましょう。






コメント