一方で最初の答えは、開口部のポストには適用されませんでした、私は読み取り専用でExcelウィンドウにファイルが開いているファイルではありませんどのように例示するためにMicrosoft Officeの古いバグを使用します。
@AJ。(オープニングポスター):利用可能な情報を考えると、Excelのさまざまなバージョンのマルチプラットフォームでの使用が、ケースの問題の最も可能性の高い原因です。以下を参照してください、一時ファイルの永続性 …
OS XによるHFS PlusのPOSIX準拠の使用に関するMicrosoft Excel 2011の問題
Excel 14.4.7(141117)を使用すると、ユーザーは、たとえば[保存]ダイアログのファイル名に固相線文字/(スラッシュ)を含めることができます。
そのファイル名でブックを保存してから閉じると、Excelで処理できない文字がある限り、そのファイルはExcelに対して読み取り専用になります。
最初に閉じる前に保存したワークブックを編集すると、追加のバグが公開される場合があります。バグの1つは、この回答の最後に示されています。
ブックを読み取り専用として扱うExcelのその他の原因
Terminalをls(1)およびlsof(8)とともに使用して、影響を受けるワークブックにロック関連ファイルが存在するかどうかを確認します。また、Excel以外でブックが開いているかどうかを確認します。
lsof
スーパーユーザーとして実行されることに注意してください。
オープン/ロックへのアプローチ
すべてのアプリが同じアプローチを使用するわけではありません。
例1:file.xlsx
最初にNeoOfficeで開き、次にMicrosoft Excelで開くワークブック:
Excelは、NeoOfficeのMac OS Xネイティブファイルロックに適切に応答します。
- ワークブックへのExcelウィンドウは読み取り専用です
- lsofからの出力は、ブックがExcelで開かれていないことを確認します。
上記のスクリーンショットでも
このCOMMAND
列は、2つのプロセスがファイルを開いていることを示しています。
例2:file.xlsx
最初にMicrosoft Excelで、次にNeoOfficeで開いた同じブック:
NeoOfficeは、ロックに対するマイクロソフトのアプローチに適切に対応します。
- ブックへのNeoOfficeウィンドウは読み取り専用です
- lsofからの出力は、ワークブックがNeoOfficeによって開かれていないことを確認します
- lsofからの出力は、ロックファイルがExcelによって開かれていないことを確認します。
本質的に
lsof
ブックを開いているものを見つけるために使用します。そうでない場合はfilecoordinationd
、サードパーティのバックアップまたは同期アプリケーション、またはメタデータ関連プロセスなどが考えられます。
一時ファイルの永続性
一時ファイルは、ファイルシステムに必要以上に長く残る場合があります。
上記の例(2)では~$file.xlsx
、file.xlsx
そのようなファイルは通常Finderからは見えません。
~$….xlsx
(たとえば)自分のMacでExcelがクラッシュした後に(見えない)ファイルが存在する場合、次に(見える)ブックを開いたときにExcelが正しく動作するはずです。
対照的に~$….xlsx
、Excelの別のインストールによってブックを閉じた後、何らかの理由でファイルが保持される場合、MacのExcelが奇妙に応答する場合があります。オープニングポストを参照して–
…約1分後、Excelが別のポップアップを開き、今回はファイルのロックが解除されていると表示され、編集するかどうかを尋ねられます…
– Microsoft Windows ServerがWindowsおよびOS Xクライアントに提供するワークブックを共有して使用していることから、この症状は非常によく知られています。
(私の場合、めったに許可されないエディションを編集するプロンプトを受け入れると、読み取り専用アクセスに関するアラートが再び表示され、次に編集するプロンプトなどが表示されます。サーバーから不可視~$….xlsx
ファイルを手動で削除します。)
Microsoft Officeのバグに戻る
既存のファイル名のソリダス/は、Excelがファイルを開けないようにします(ファイルへのウィンドウは読み取り専用です)。
それは比較的無害です。
ただし、最初の保存に続くエディションでは、一連の問題が発生する場合があります。以下のスクリーンショットは、自動保存/自動回復の失敗を示しています–
–ワークブックは保存され、開いたまま(で確認lsof
)になりますが、動作はエンドユーザーを混乱させます。