Excelファイルの読取専用モードが表示される現象の原因と回避方法

このQ&Aのポイント
  • Excelファイルを開く際に表示される読取専用モードのメッセージについて、他のユーザーが使用中と表示される原因や回避方法などについて解説します。
  • 問題が発生する状況や環境について説明し、メッセージの表示内容や意味について解説します。
  • 解決策として、「読取専用モードをOFFにする」ボタンの作成や、VBAを使用してブックのモードを設定する方法について説明します。
回答を見る
  • ベストアンサー

立ち上げ時に、他ユーザーで使用中のメッセージが。

立ち上げ時に、他ユーザーで使用中のメッセージが。 お世話になります。 次の様にエクセルを使っています。   A.xls はVBA組み込み。   B.xls はVBAは未使用。 A.xlsから、読取専用モードで、B.xlsを開く使い方をしています。 時々、次の様な現象が起きます。毎日、使用して、起きるのは1週間に1回程。 環境は職場のネットワークPC。 不特定多数の人が、このA.xlsを使用しています。 問題点> (1)AとBを終了させる。、 (2)次に、A.xlsを立ち上げる。 (3)そうすると、「AはユーザCで使用されているので、読取モードで開きます」  のメッセージが表示される。(このメッセージは概ねです)  ここで云うユーザ名は、今使用中の自分自身のユーザ名です。  実際に、他のユーザーで使用されている訳ではありません。 (4)パソコンを再起動すると、この問題は解決されます。 補足> A.xlsは、1MB以上のサイズがあり、終了するのに20秒程かかります。 色々な職員が使用している為、 Xボタンを押して終了保存処理をしている時に、待ちきれずにもう一度、Xボタンを押して 二重に終了保存処理させてしまい、書き換え用の中間ファイルが残ってしまう現象がある事は分かっています。この場合は私が気が付いた時に、手作業で中間ファイルを消しています。 また、二重に終了保存処理をしても、中間ファイルが自動的に削除される場合もあります。 質問> (1)考えられる原因は何でしょうか。 ヒントでも結構ですので教えて下さい。 (2)A.xlsのメニューに読取専用モードをOFFするボタンを作って、回避できればいいと思っています。  VBAで、ブックのモードを設定するステートメントはありますか? よろしくお願いします。

  • tt246
  • お礼率91% (116/127)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

たまたまでしょう。 ファイル ロックの解除がもたついてるとかじゃないですかね。 私の所でも出ますが、ちょっと待って開きなおせば大丈夫です。 変な機能を作り込むよりも、使う人たちへのアナウンスが大事だと思います。 「そういうもんなんだ」 という余裕を持ってもらうことこそが円滑な業務に繋がるかと。

tt246
質問者

お礼

回答ありがとうございます。 いつ発生するかわかりませんが、起きた時に時間を掛けて試してみます。 何故、B.xlsを読取専用で開く様にしたかの理由ですが、 これは事故報告書の原紙ファイルで、報告書を原紙に直接書き込んで保存してしまう職員がいた為です。 今まではパソコンで事故報告書の作成は禁止されていました。まじですが全て手書きで。本気でこう言う上司もいるのです。 それで、読取専用で開く機能を作った事により、パソコンでの報告書作成が可能になったのです。 一般職員は再起動すれば解消していますが、やはり不便なので質問してみました。 現象は1週間に一度起きたら色々やってみます。 まずは御礼まで。

関連するQ&A

  • EXCEL VBA コピー貼り付け時のチェック

    お世話になります。田中と申します。 VBAの練習で下記の操作を実現したいと思っておりますが、どうしたらよいのか分りません。 A.xlsというブックがあります。 A.xlsの[データ]というシートにボタンをおいてそのボタンをクリックしたら以下のような動作をしたいのです。 このA.xlsの[データ]シートのA1~L20までをコピーして、C:\Users\田中\DesktopにあるB.xlsというブックの[シート1]という名称の単にシートに貼り付けしたいのです。 ただし貼り付け時に他のユーザーがB.xlsを開いている場合は、貼り付け処理を中止したいのですが、そのようなユーザーに開かれているかどうかVBAでチェックする方法はありますでしょうか? どなたかお知恵をお借りできますでしょうか。 よろしくお願い致します。 環境 Windows7 Excel2013

  • メッセージ表示の解除

    VBAで読み取り専用でファイルが開かれているときは、処理を行わず 「誰か開いていますよ」というメッセージを表示してしばらくしてから 再度処理をするといったことを行いたいと考えています。 しかし、読み取りが解除されたとき「ファイルが編集可能となりました」の表示がされてしまいます。 これを解除するにはどうしたらいいでしょうか? If wb.ReadOnly = True Then Workbooks("test.xls").Close MsgBox ("ただいま他の方が使用中です。しばらくしてOKボタンを押下してください。") GoTo LABEL1 End If

  • 他のBookのユーザー定義関数を使う

    例えばExcelでA.xlsというファイルのVBAでユーザー定義関数を作って、他のB.xlsというBook内でも使いたいという場合はどうしたらよいのでしょう。また、それはLAN上の別のコンピュータでも出来るでしょうか。

  • EXCEL VBA で終了出来ますか?

    いつもお世話になります。 OfficeXPを使用しています。 EXCELのVBAでファイルを開き、定型処理をさせているのですが、定型処理完了後にEXCELを終了させたいと思っています。しかしEXCELの終了マクロをうまく作ることが出来ません。(終了時のメッセージを出さないようにしたいです) ActiveWorkbook("test.xls").Closeで終了させようとしたのですが、「test.xlsを保存しますか」というメッセージが出てきてしまいます。メッセージを出さずになおかつ保存せずに終了させたいのですが、何方か良い方法を教えて頂けないでしょうか?

  • ほかのユーザーへのメッセージ

    XPで複数のユーザーで使っているとき、ほかのユーザーに伝言みたいにメッセージを送る方法ってありませんか? 例えば、ユーザーAがユーザーBにメッセージを送っておいて、ユーザーBがログオンしたときに、そのメッセージが表示されるとか。お願いします。

  • VBAで他のexcelのシートをコピーしてくる方法

    a.xlsにb.xlsのsheet1をVBAを使ってコピーしたいと考えています。 (このVBAをボタンに振ろうかと。。。) 参考になるVBAはありませんか?

  • エクセル立ち上げのエラーメッセージを消したい

    エクセルを立ち上げると毎回 C:\Users\PC-USER\Desktop\NonP0701.xla が見つかりません。ファイルの保存場所が正しいかどうか確認してください というメッセージがでます。新規ファイルでも既存のファイルでも同じです。 OKボタンを押すと普通に使用できるのですが 毎回押すのが面倒で、このメッセージが出ないようにしたいのですが どうすればよいでしょうか

  • VBAで他のブックのシートにボタン一つで書込みたい

    現在申し込み票のExcelがあるのですが、マクロをボタンに登録してボタン一つ押すと申し込み票の名前と生年月日、住所が他のExcelのブック(例えば申込者名簿.xls)のシートに、名前→A1、生年月日→B1、住所→C1に入力されて保存されるようにしたいです。 更に次にもう一度ボタンを押した時には、名前→A2、生年月日→B2、住所→C2・・と言うようにどんどん書き足したいです。 書き足した後は元のExcelブックも申込者名簿.xlsも閉じるようにしたいです。 どのようにVBAを書けばよいのでしょうか? まだVBA初心者のためいまひとつわかりません。 よろしくお願いいたします。

  • LAN内で同じファイルを開くときに、「使用中のファイル」のメッセージについて

    LAN内で別ユーザが同じファイルを開くときに、「使用中のファイル」のメッセージがでて、 ・読み取り専用 ・通知 ・キャンセル になっているのですが、 これを変えたいのですがどうすればいいのでしょうか。 以下のどれかにしたいです。 1.通知とキャンセルだけにする 2.最初の選択を通知にする 3.誰かが開いているときはファイルを開かせない 4.VBA使って読み取りで開かせない できれば、1か2がいいのですが教えてくださいーー WindowXPとWindow2000混在LAN VBAの知識は少しあります。 よろしくですー

  • Excel VBAで時刻の判定

    EXCEL VBAの時間判定について質問させてください。 エクセルのブックが2つあり、それぞれを「A.xls」「B.xls」とします。 A.xlsの「A1」に"開始時刻"、「B1」に"終了時刻"が入っており、 B.xlsの「E1」に"開始時刻"、「F1」に"終了時刻"が入っているとき、 A.xlsの開始~終了時間に、B.xlsの開始~終了時間がかぶっている場合に処理を行う、といった判定式を作りたいと思っています。 例) A.xls:A1=1:00 B1=3:00 B.xls:E1=2:00 F1=5:00 上記のとき、メッセージボックスで"時刻がかぶっています"を返す。 A.xls:A1=1:00 B1=3:00 B.xls:E1=3:00 F1=5:00 上記のときは、"問題なし"を返す。 といった感じです。 この時刻の判定に何を用いたら良いのかが分かりません。 よろしくお願いします。