Excelが「読み取り専用」になって保存できない原因と解除方法を徹底解説

業務中にExcel(エクセル)ファイルを開いて一生懸命データを入力・編集し、いざ保存しようとした瞬間に「このファイルは読み取り専用です。変更を保存するには、新しい名前でドキュメントのコピーを保存してください」という警告メッセージが出て、上書き保存ができずに絶望した経験は誰にでもあるはずです。

「自分しか使っていないはずなのになぜ?」「昨日までは普通に保存できていたのに」「他の人にファイルを開いていないか確認したのに、まだ読み取り専用になる」など、Excelが読み取り専用になってしまう背景には様々な理由が潜んでいます。

この「読み取り専用(Read-only)」という状態は、ExcelやWindowsのシステムが「誤ってデータを消してしまったり、他の人の編集結果と競合したりするのを防ぐための保護機能」として働いている結果です。つまり、パソコンが壊れたわけではなく、必ず論理的な原因が存在し、正しい手順を踏めば100%解除することができます。

本記事では、ITサポートの現場で最もよく遭遇する「Excelが読み取り専用になる7つの原因」と、それぞれの「確実な解除方法・上書き保存の手順」を、4000文字以上の圧倒的なボリュームで体系的に徹底解説します。緊急時の応急処置から、マクロ(VBA)を使った高度な解除テクニックまで網羅していますので、この記事の通りに確認すれば必ず解決できます。

目次

1. なぜExcelは突然「読み取り専用」になるのか?

Excelの「読み取り専用」とは、ファイルを開いて中身を見る(読み取る)ことはできるものの、変更を加えて元のファイル名で上書き保存(書き込む)ことができない状態を指します。

この状態になる要因は、大きく分けて以下の3つに分類されます。

  • 人間・運用による制限: 誰かが開いている、作成者が意図的に保護をかけている。
  • Windowsのシステムによる制限: 属性が付与されている、プレビュー機能が干渉している、アクセス権限がない。
  • ネットワーク・クラウドの仕様: 同期が終わっていない、チェックアウトが必要な設定になっている。

「どのタイミングで読み取り専用と言われたか(ファイルを開いた直後か、保存ボタンを押した瞬間か)」によって原因を絞り込むことができます。それでは、代表的な7つの原因と対処法を順番に見ていきましょう。

2. 原因1:他の誰かがすでにファイルを開いている(共有ロック)

社内のファイルサーバー(NASや共有フォルダ)に置かれたExcelファイルで最も多い原因です。
あなたがファイルを開こうとした時、すでにAさんがそのファイルを開いて作業をしていると、Excelはデータの上書き衝突を防ぐためにファイルに「排他ロック」をかけます。その結果、後から開いたあなたに対しては「〇〇さんが使用中です。読み取り専用で開きますか?」というメッセージを表示します。

【解除方法・対処法】

  1. 相手に閉じてもらう: メッセージに表示されたユーザー(またはPC名)に連絡を取り、ファイルを上書き保存して閉じてもらうのが最も確実です。相手が閉じれば、自分側のExcelの上部に「編集可能になりました」という通知バーが出るので、「編集」ボタンをクリックしてロックを取得します。
  2. 「通知」ボタンを活用する: 読み取り専用で開くか聞かれた際、「通知」ボタンを押して読み取り専用で開いておきます。相手がファイルを閉じると、ポップアップで「ファイルが編集可能になりました」と通知されるため、その時点で編集を開始します。
  3. 共同編集に切り替える: 最新のMicrosoft 365環境であれば、ファイルを従来のファイルサーバーから「OneDrive」や「SharePoint」に移動させることで、複数人が同時にファイルを開いて文字を入力できる「共同編集機能」が利用できるようになり、このエラー自体が発生しなくなります。

3. 原因2:ファイルのプロパティで「読み取り専用」属性がついている

Windowsのシステムレベルで、ファイルそのものに「読み取り専用(Read-only)属性」が付与されているケースです。社内システムからエクスポート(ダウンロード)したCSVファイルやExcelファイル、またはCD-ROMやUSBメモリなどの外部メディアからコピーしたファイルでよく発生します。

この場合、ファイルを開いた際、タイトルバーのファイル名の横に「- 読み取り専用」と表示されます。

【解除方法】

  1. Excelで該当のファイルを一度閉じます。
  2. Windowsのエクスプローラーで、対象のファイルが保存されているフォルダを開きます。
  3. 該当のExcelファイルを右クリックし、一番下の「プロパティ」をクリックします。
  4. 「全般」タブの最下部にある「属性」欄を確認し、「読み取り専用」のチェックボックスにチェックが入っていれば、クリックしてチェックを外します。
  5. 「OK」をクリックしてプロパティ画面を閉じます。
  6. 再度Excelでファイルを開くと、通常通り上書き保存ができるようになります。

4. 原因3:作成者が「読み取り専用を推奨」に設定している

ファイルを開いた直後に、「〇〇(ファイル名)は、変更する必要がなければ、読み取り専用で開いてください。読み取り専用で開きますか?」という確認ダイアログが表示される場合、そのファイルの作成者が意図的に「読み取り専用を推奨」する設定を仕込んでいます。

「はい」を押すと読み取り専用になり、「いいえ」を押すと通常の編集モードになります。この設定自体を解除したい場合は、以下の手順を行います。

【解除方法(設定の無効化)】

  1. ファイルを開く際のダイアログで「いいえ」を選択し、編集可能な状態で開きます。
  2. Excelの画面左上の「ファイル」タブをクリックし、「名前を付けて保存」を選択します。
  3. 「参照」をクリックして「名前を付けて保存」ダイアログボックスを開きます。
  4. 保存ボタンのすぐ左にある「ツール」という文字をクリックし、表示されたメニューから「全般オプション」を選択します。
  5. 「全般オプション」ダイアログが表示されるので、「読み取り専用を推奨する」のチェックを外します。
  6. 「OK」をクリックし、そのまま「保存(上書き保存)」をクリックして完了です。次回以降、あの確認メッセージは出なくなります。

5. 原因4:エクスプローラーの「プレビューウィンドウ」がファイルを掴んでいる

「誰もファイルを開いていないし、属性もついていないのに、なぜか突然読み取り専用になる」というトラブルの隠れた原因第1位が、Windowsエクスプローラーの「プレビューウィンドウ(プレビューペイン)」です。

エクスプローラーの右側にファイルの中身(Excelの表など)を表示する機能がオンになっていると、ファイルを選択してワンクリックしただけで、背後でプレビュー機能が「ファイルを閲覧モードで開いた状態」にしてしまいます。その直後にファイルをダブルクリックしてExcelを起動すると、自分自身のプレビュー機能と競合してしまい、「他のユーザーが使用中です(読み取り専用)」となってしまうのです。

【解除方法】

  1. Windowsの「エクスプローラー」を開きます。
  2. 画面上部のメニューから「表示」タブをクリックします。
  3. 「ペイン」グループにある「プレビューウィンドウ」のボタンがオン(背景がグレーなどの選択状態)になっていれば、クリックしてオフにします。
    ※ショートカットキー Alt + P でもオン・オフの切り替えが可能です。
  4. 同様に、隣にある「詳細ウィンドウ」もオフにしておくことを推奨します。
  5. 一度エクスプローラーを閉じ、再度ファイルを開き直して上書き保存できるか確認してください。

6. 原因5:フォルダやネットワークのアクセス権限(セキュリティ)がない

会社のファイルサーバーなどに保存されているファイルで、あなたのアカウントに「ファイルを読み取る(開く)権限」は与えられているものの、「書き込む(上書き保存する)権限」が与えられていない場合に発生します。人事データや経営会議の資料など、特定の部署だけが編集でき、他の人は閲覧しかできないようにネットワーク管理者が意図的に設定しているケースです。

【解除方法】

この原因の場合、ユーザー自身のパソコン操作で解除することは不可能です。どうしても編集・保存が必要な場合は、社内の情報システム部門や、そのフォルダの管理者に連絡し、「対象フォルダ(またはファイル)のNTFSアクセス権、および共有アクセス権にて『変更』または『フルコントロール』の権限を付与してください」と依頼する必要があります。

7. 原因6:クラウド(OneDrive/SharePoint)の同期トラブルやチェックアウト設定

ファイルがOneDriveやSharePoint Onlineに保存されている場合、特有の設定やトラブルによって読み取り専用になることがあります。

①「チェックアウトが必要」に設定されている

SharePointのドキュメントライブラリ設定で「ドキュメントを編集する前にチェックアウトを必須にする」が有効になっていると、ファイルを開いても勝手には編集・保存できません。
【対処法】 Excelの上部に表示される情報バーから「チェックアウト」をクリックするか、SharePointのWeb画面で対象ファイルを右クリックし「チェックアウト」を選択してから編集を行い、終わったら「チェックイン」をしてください。

② 同期エラーが発生している

PCのOneDriveデスクトップアプリが一時的にフリーズしていたり、インターネット接続が途切れていたりすると、Excelがクラウド上のファイルの排他制御状況を確認できず、安全のために読み取り専用で開くことがあります。
【対処法】 画面右下のタスクトレイにある「青い雲」のアイコン(OneDrive)をクリックし、「同期の問題」や「一時停止中」になっていないか確認し、必要に応じてサインインし直すかPCを再起動してください。

8. 原因7:前回のExcelが異常終了し、バックグラウンドに残っている

Excelがフリーズして「応答なし」になり、タスクマネージャーから強制終了させた直後などに発生します。画面上はExcelが消えていても、Windowsのバックグラウンド処理(裏側)で「EXCEL.EXE」というプロセスが生き残ったままファイルを掴み続けている(ロックしている)状態です。

この状態で再度同じファイルを開こうとすると、「自分自身が使用中である」と判定され、読み取り専用になります。

【解除方法】

  1. キーボードの Ctrl + Shift + Esc を同時に押し、「タスクマネージャー」を起動します。
  2. 「プロセス」タブ(または「詳細」タブ)を開きます。
  3. リストの中に「Microsoft Excel」または「EXCEL.EXE」という名前を見つけます。
  4. その上で右クリックし、「タスクの終了」をクリックします。
  5. バックグラウンドのプロセスが消去され、ファイルのロックが解放されます。これで正常に開けるようになります。

9. 【応急処置】今すぐデータを失わずに上書き保存する裏技

「原因を調べている時間がない!今すぐこの入力した1時間分のデータを保存して会議に行かなければならない!」という緊急事態の場合、以下の手順で「別名保存から無理やり上書きする」のが最も確実な応急処置です。

  1. Excelの画面で「ファイル」>「名前を付けて保存」を選択します。
  2. 元のファイルと同じフォルダを選択し、ファイル名の末尾に「_最新」や「_修正版」などと追記して、別名で保存します。(例:売上表_最新.xlsx)
  3. これであなたの入力データは安全に確保されました。Excelを一旦閉じます。
  4. 他の人に連絡して元のファイル(売上表.xlsx)を閉じてもらうか、プレビューウィンドウをオフにするなどの原因究明を行います。
  5. 元のファイルのロックが解除されたら、古い「売上表.xlsx」を削除するか「売上表_旧.xlsx」に名前を変更します。
  6. 先ほど保存した「売上表_最新.xlsx」の名前を「売上表.xlsx」に変更して元に戻します。

これにより、結果的に「元のファイルに上書き保存したのと同じ状態」を作ることができます。読み取り専用で上書きを弾かれたら、意地を張らずにまず「別名で保存」してデータを逃がすのが実務の鉄則です。

10. 【VBA編】マクロで読み取り専用を判定・強制解除するコード

VBAマクロを使って複数のファイルを自動処理している際に、対象ファイルが読み取り専用属性を持っていると、マクロがエラー(実行時エラー70:書き込みできません)で停止してしまいます。
プロのVBA開発では、ファイルを開く前・上書きする前に属性を判定し、プログラム側で一時的に読み取り専用属性を解除してから処理を行うエラーハンドリングを実装します。

以下のコードを標準モジュールにコピーして活用してください。

Option Explicit

Sub ProcessFileSafely()
    Dim targetFile As String
    Dim fileAttr As VbFileAttribute
    Dim wb As Workbook

    ' 操作対象のファイルパスを指定
    targetFile = "C:\Work\DataReport.xlsx"

    ' ファイルの存在確認
    If Dir(targetFile) = "" Then
        MsgBox "ファイルが見つかりません。", vbCritical
        Exit Sub
    End If

    ' 現在のファイルの属性を取得
    fileAttr = GetAttr(targetFile)

    ' 「読み取り専用属性(vbReadOnly)」がついているか判定
    If (fileAttr And vbReadOnly) = vbReadOnly Then
        ' 読み取り専用属性を外す(元の属性からvbReadOnlyを引き算する)
        SetAttr targetFile, fileAttr - vbReadOnly
    End If

    ' ファイルを開いて編集する処理
    Set wb = Workbooks.Open(targetFile)

    ' --- ここに自動化したいデータ入力や集計処理を書く ---
    wb.Sheets(1).Range("A1").Value = "更新済み"

    ' 上書き保存して閉じる
    wb.Save
    wb.Close

    MsgBox "ファイルの属性を解除し、正常に上書き保存しました。", vbInformation
End Sub

【コードの解説】
GetAttr 関数でファイルの持つ属性を調べ、ビット演算(And)を使って「読み取り専用」が含まれているかを確認します。もし含まれていた場合、SetAttr ステートメントを使って属性を強制的に外します。これにより、マクロが途中でエラーになるのを防ぐことができます。(※ただし、ネットワークのアクセス権限がない場合はこのコードでも解除できません)

11. よくある質問(FAQ)

Q1. 開く時に毎回「パスワード」を求められ、読み取り専用でしか開けません。

作成者が「書き込みパスワード」を設定してファイルを保護しています。ファイルを開く際に表示されるダイアログで正しいパスワードを入力しなければ上書き保存はできません。パスワードを知らない場合は、作成者に問い合わせるか、「読み取り専用」ボタンを押して閲覧のみを行ってください。

Q2. USBメモリやSDカードのExcelファイルが必ず読み取り専用になります。

USBメモリやSDカード自体の側面に、「Lock(ロック)」と書かれた物理的な小さなスイッチ(ライトプロテクトスイッチ)がついている場合があります。このスイッチがオン(ロック状態)になっていると、中のファイルはすべて読み取り専用になります。USBメモリを抜き、スイッチをオフ側にスライドさせてから再度パソコンに挿し込んでください。

Q3. Mac版のExcelでも原因は同じですか?

Mac版でも「誰かが開いている」「読み取り専用属性が付いている」という基本的な原因はWindowsと同じです。Mac特有の原因として、Finder(Macのエクスプローラー)の「情報を見る」画面で「ロック」にチェックが入っている場合や、フォルダの「共有とアクセス権」設定で「読み出しのみ」になっている場合に発生します。該当ファイルの「情報を見る(Command + I)」を開き、権限を確認してください。

12. まとめと解決チェックリスト

Excelファイルが「読み取り専用」になって上書き保存できないトラブルは、データの喪失を防ぐためのExcelの正当な防御機能が働いている結果です。パニックにならずに、以下のチェックリストを上から順に確認することで、必ず原因を突き止めて保存できるようになります。

  • 他の人が開いていないか? → 共有サーバーの場合は利用者に閉じるよう依頼する。
  • プレビューウィンドウがオンになっていないか? → エクスプローラーの表示設定を確認し、Alt+Pでオフにする。
  • ファイルに属性が付いていないか? → 右クリックの「プロパティ」から「読み取り専用」のチェックを外す。
  • 「読み取り専用を推奨」になっていないか? → 「名前を付けて保存」の「ツール(全般オプション)」から解除する。
  • Excelが裏で固まっていないか? → タスクマネージャーを開き、残っているEXCEL.EXEを強制終了する。

どうしてもその場で解除できない場合は、慌てずに「名前を付けて保存」で末尾に文字を付け足して別ファイルとして保存してください。データさえ安全な場所に確保しておけば、後でゆっくりと元のファイルを上書き整理することができます。

本記事の対処法をマスターし、突然の「読み取り専用」エラーに余裕を持って対応できるようにしておきましょう。