Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12889 / 13644 ツリー ←次へ | 前へ→

【8120】ブック共有で J 03/10/1(水) 13:32 質問
【8122】Re:ブック共有で Jaka 03/10/1(水) 14:25 回答
【8123】Re:ブック共有で Kein 03/10/1(水) 15:15 回答
【8126】Re:ブック共有で J 03/10/1(水) 15:41 お礼

【8120】ブック共有で
質問  J  - 03/10/1(水) 13:32 -

引用なし
パスワード
   マクロを実行すると、"ブックの共有"をしているブックに、データを更新し保存後閉じる処理をしているのですが、先に共有ブックを更新し保存している方がいて、同時にマクロの処理が実行されると、"ファイルを編集できるようになりました"というダイアログが表示されてしまいます。

少し分かりにくい説明で申し訳ありませんが、データ更新先の共有ブックが現在開かれているまたは、現在保存中かどうかを調べるのにいい方法はありませんでしょうか?
分かる方がいらっしゃたら、ご教授願います。

【8122】Re:ブック共有で
回答  Jaka  - 03/10/1(水) 14:25 -

引用なし
パスワード
   こんにちは。

読みとリ専用でない事が前提。

With Workbooks.Open("10.1.xls")
  If .ReadOnly Then
    .Close False
    MsgBox "開かれているので、閉じます。"
  Else
    MsgBox "開いてない。"
  End If
End With

【8123】Re:ブック共有で
回答  Kein  - 03/10/1(水) 15:15 -

引用なし
パスワード
   Openメソッドのヘルプによると

On Error Goto ELine
Workbooks.Open Filename:="XXX.xls", Notify:=False

'処理

ELine:
End Sub

のようにすると、通知をしないでブックを開くことなく終了させることが
できそうなんですが、Notify:=False はデフォルトになっているらしく、
逆に True を渡したときだけ通知される。というとになるみたいです。
そうすると通知が出てくるのは、マニュアル設定で通知させるように
しているか、あえて True を渡しているか、になりますね。
良くわからないけど、なんだかバグっぽい感じもしますね・・・。

【8126】Re:ブック共有で
お礼  J  - 03/10/1(水) 15:41 -

引用なし
パスワード
   Jakaさん、Kein さん教えてくださって、ありがとうございました。無事なんとかできました。

12889 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free