
以前、同じ質問をしたことがあります。(QNo.3615620)
「ネットワーク障害などでサーバー上のエクセルブックが開けない時、かなり待たされてから次のメッセージが出ます。
実行時エラー'1004' 'Open'メソッドは失敗しました。'Workbooks'オブジェクト
しかもその間、Ctrl-Breakも受け付けてくれません。
正確に待ち時間は計ったわけではありませんが、10分くらいでしょうか。
なんとかこれを回避して、早い時間にエラーメッセージを出してコントロールを戻すことはできないでしょうか?
以下のVBAでオープンしています。
Workbooks.Open Filename:=myFileName, Readonly:=True
よろしくお願い申し上げます。 」
この時はネットワークに原因があるものと思い込んでおり、いただいた回答もVBAによるpingの発信及び受取りでした。
ところが、この症状が発生している状況で、Pingを行ってもほとんど瞬時に戻ってきました。
またDir関数で該当エクセルファイルを指定しても、直ちにコントロールが戻ります。
どうやら誰かが該当ファイルを排他制御で開いているのが原因の様です。
これを回避し、使えない場合直ちにメッセージを表示しコントロールを戻すことはできないでしょうか。
該当ファイルは使えなくて構いません。
エクセルが砂時計のままで何も受け付けない状態を回避したいのです。
よろしくお願い申し上げます。
No.1ベストアンサー
- 回答日時:
こんにちは。
排他的オープンなら、以下のようにすれば、チェック出来ると思うのです。
>Dir関数で該当エクセルファイルを指定しても、直ちにコントロールが戻ります。
まあ、VBAでは、それをコントロールとは言わないけれども、意味は分かります。
-------------------------------------------------
Sub BookEnableChecker()
Dim MyPath As String
Dim myFno As Integer
Const Fname As String = "TestBook1.xls"
MyPath = "\\サーバー名 \○○\"
If Dir(MyPath & Fname) <> "" Then
myFno = FreeFile
On Error Resume Next
Open MyPath & Fname For Binary Lock Read Write As #myFno
Close #myFno
End If
If Err.Number = 70 Then
MsgBox "ブックは開いています", 16
ElseIf Err.Number = 0 Then
MsgBox "ブックは編集できます。", 64
Else
MsgBox "ブックを調べてください", 32
End If
On Error GoTo 0
End Sub
この回答への補足
教えていただいたロジックは入れてありますが、もう1ヶ月以上経ちますが、このような事象は発生しませんでした。
この質問は〆させていただきたいと思います。
どうもありがとうございました。
回答ありがとうございます。
使用するのは職場です。
トライするのは3連休の後になると思います。
結果は"補足"で報告いたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel-VBAでのファイルの開き方 4 2023/02/14 11:01
- Excel(エクセル) ネットワーク上のエクセルとリンクしている時にデータ更新をvbaで、refresh Allで行う場合の 2 2023/04/10 05:39
- Excel(エクセル) エクセルのマクロの有効について 4 2023/08/03 11:40
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- ノートパソコン ExcelファイルがDoxillionに突然、変わってしまい、エクセルファイルが開かず困っています。 4 2022/09/22 07:02
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) マクロVBA 1シートをまとめる 閉じ方 初心者 SOS! 1 2022/06/17 14:54
- Visual Basic(VBA) Excel ファイルを指定し、指定されたファイル内にシートを統合するVBA 8 2023/07/10 10:09
- Excel(エクセル) PDFファイルに日付を名前にして保存したい。 エクセル2019でワークシートに請求書のフォームを作り 2 2023/05/27 11:13
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カメラスクロールするのを動画...
-
エクセル・VBA CheckBoxのオブ...
-
PDF起動時のナビゲーションパネ...
-
iPhoneのアプリ開発でユーザ操...
-
ユーザコントロールのイベント...
-
Shapeコントロールを実行時に任...
-
エクセルVBAでオプションボタン...
-
PDFファイルを印刷するプログラム
-
chr関数の呼び出しで「プロ...
-
EXCELでactivexコントロールを...
-
無料で使えるグリッドコントロール
-
vb.netで画面のコントロールId...
-
VBA ユーザーフォームの Keypre...
-
TEXTBOXでカンマ編集
-
【C#】ツールチップを複数設定...
-
現代文読解力開発講座の問題です。
-
VBAのカレンダーコントロールに...
-
「シートを最前面」にしたいの...
-
iPhone設定
-
チェックボックスをオンにした...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル・VBA CheckBoxのオブ...
-
EXCELでactivexコントロールを...
-
エクセルVBAでオプションボタン...
-
チェックボックスをオンにした...
-
カメラスクロールするのを動画...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
Groupboxの配下のコントロール...
-
ユーザーフォームで動的(Me.Con...
-
VBA ユーザーフォームの Keypre...
-
vb.netで画面のコントロールId...
-
全てのオブジェクトのプロパテ...
-
間違えて配置してしまったコン...
-
chr関数の呼び出しで「プロ...
-
VBAのフォームでTextBoxがいっ...
-
OCXって何ですか?
-
アクセス特有の書き方?
-
エクセル コントロールツール...
-
コントロールを移動できない
-
Labelコントロールの(左右)余...
おすすめ情報