ファイルの排他機能をExcelマクロで作成したいのですが、うまくいきません。 よいアドバイスをお願いします。

ファイルの排他機能をExcelマクロで作成したいのですが、うまくいきません。 よいアドバイスをお願いします。 例として、 ファイル「xyz.xls」を自動で開き編集後、閉じるようなマクロを作成しています。 Aパソコンでファイル「xyz.xls」を自動で開いた時、Bパソコンでもほぼ同時にファイル「xyz.xls」を開きにいった場合、読み取り専用であった場合はメッセージを表示してファイル「xyz.xls」を自動で閉じるようにしています。 ・マクロは下記のように記述しています。 With Workbooks.Open(xyz.xls) If .ReadOnly Then MsgBox ("他場所でDB使用中です。もう一度登録して下さい") Workbooks(xyz.xls).Close SaveChanges:=False end if end with と、ここまではいいのですが、Aパソコンでファイル「xyz.xls」を閉じた後、Bパソコンではマクロで自動で「xyz.xls」を閉じたにもかかわらず、「ファイル使用可能」ウィンドウが開き、「xyz.xls」は編集できるようになりました。編集を選択すると開いたファイルを編集できます。」というメッセージが表示されます。「編集」ボタンをクリックすると「xyz.xls」が開きます。ファイル「xyz.xls」は編集させたくありません。 「ファイル使用可能」ウィンドウを開かない方法または、 「ファイル使用可能」ウィンドウが開いたとしても自動でキャンセルしファイル「xyz.xls」を開かせない方法を教えて頂きたいのですが・・・。よろしくお願いします。 ★「ファイル使用可能」ウィンドウを画像として貼り付けてあります。

画像
補足

risuto83さん回答ありがとうございす。 Bパソコンで、読み取り専用であった場合はメッセージを表示してファイル「xyz.xls」を自動で閉じて、またマクロを再実行したいと考えています。よって、出来ればExcelは終了させたくありません。

Excel1,743閲覧xmlns="http://www.w3.org/2000/svg">25

ベストアンサー

このベストアンサーは投票で選ばれました

0

Excel自体が終了していないからだと思います。 Application.Quitを追加してみてください。 http://www.nurs.or.jp/~ppoy/access/excel/xlA022.html 追記---------------------------------------------- ご提示されているコードにあるEnd Withの後も続くということでしょうか。 環境にないので、検証できませんが、 アラートの非表示であれば、Application.DisplayAlerts = False で大丈夫だと思います。 警告アラートを表示させる処理が必要な場合は、Application.DisplayAlerts = True で元に戻します。 http://www.relief.jp/itnote/archives/001936.php