ここから本文です

エクセルVBAで、ファイルを「閉じる」場合の疑問にお答え下さい。 条件は、複数人...

kag********さん

2016/6/401:41:02

エクセルVBAで、ファイルを「閉じる」場合の疑問にお答え下さい。

条件は、複数人が、LANで、ファイルを使用する場合です。(当該ファイルは非共有の設定です。)

ある人Aが、VBAでファイルを

読み取り専用で開き、(readonly:=true)、データ取得。そして閉じる(.close )とします。

もしも、その間に、他の人Bが、同じくVBAで、同時に読み取り専用や、フルアクセスで開いていたら、Aの閉じるという命令は、Bのファイルの状況に影響を与えますか?
(Bのファイルを閉じてしまうとか、反対にA のファイルが閉じないとか。)

ファイルを開く場合の競合を防止するのに、読み取り専用にするのはいいなと思うのですが、閉じる場合には、競合?問題は起こらないのでしょうか?
(それぞれがそれぞれのファイルを閉じるだけで干渉することはないということでよいでしょうか?)

閲覧数:
121
回答数:
2

違反報告

ベストアンサーに選ばれた回答

KYO-Zさん

2016/6/409:16:27

開いたファイルは、開いたPCのメモリ上に展開しています。
Aさんが読み取り専用で開いていたとしても、該当ファイルには変化はありませんし他の方1名ならフルアクセス出来るでしょう。
元のファイルには「誰かが開いている」くらいの属性しか感知されませんので、別の人が開いた所でそこに影響することはありません。

競合の問題が起きるのはフルアクセスで複数人が扱う場合。
ご存知かとは思いますが、Aさんがフルアクセス>Bさんが開いても読み取り専用になる>Aさんが保存して終了>Bさんに読み取り専用解除の通知>Bさんが上書き
こうなった場合、AさんもBさんも開いたのは最初の段階のファイルで、BさんはAさんの上書き内容をしらず、ファイルを変更して上書きするのでAさんの保存内容は無駄になります。

逆に言うと、開いたファイルを閉じ上書きする命令が展開したPCから元のファイルの場所にフィードバックする作業なので、読み取り専用で開いた場合フィードバックは発生せず、元のファイルにはなんの影響もないといえます。

質問した人からのコメント

2016/6/4 20:26:29

回答ありがとうございました。
複数人で、ファイルを開く場合の競合については、けっこう記載があるのですが、閉じる場合には、穴がないのか気になってました。
LAN にファイルを投入する前に、回答で、確認できて良かったです。
実際に、サンプルファイルで、試してみたいと思います。感謝。

ベストアンサー以外の回答

1〜1件/1件中

dad********さん

2016/6/406:07:45

はい、その通りです。読み取り専用で開くのであれば、他の人に影響を与える事はありません。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる