
VBScriptで指定フォルダにあるファイルに対して処理を行っています。
その指定フォルダにファイルがコピー中であったり、
他のプロセスがファイルを作成中だったりする場合、
このスクリプトを実行すると、コピー中や作成中のファイルに対して処理を行ってしまうため、
正しく処理ができません。
コピー中だったり、他のプロセスが作成や編集を行っている場合、
そのファイルに対しては処理を行わず、次回実行時に編集中でなければ
処理を行うようにしたいと思います。
コピー中だったり、他のプロセスが作成や編集を行っているかどうかを
VBScriptで識別する方法を探したのですが、分からなかったため、教えてください。
なお、ファイルは数GBのものが多く、他プロセスが作成を行っている場合、
30~3時間程度行っています。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
単にエラー対応処理を書いたらいいだけでは?
dim ErrorCodeSave
on error resume next
open ・・・
ErrorCodeSave = Err.Number
On Error Goto 0
if ErrorCodeSave > 0 then
if ErrorCodeSave = xx(具体的な数値は実行してみて確認してください) then
msgbox("処理中。時間を置いてから再実行してください")
else
Err.Raise ErrorCodeSave
end if
end if
みたいな感じで。
参考:
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh0 …
No.2
- 回答日時:
こちらも古典的な方法ですが排他で開いてエラーにならなかったら未使用
と判断する・・AccessのVBA中で拝借していたものです
http://oshiete.goo.ne.jp/qa/2543381.html
でも、こういったのは微妙なタイミングで使い出したりしちゃってくれるので
難しいですね。
No.1
- 回答日時:
昔からの手法では、
別のファイルを用意し、
長時間処理するプログラムに、処理が終わったら
処理が終了したことを書き込んでもらって、
そちらを確認して次の処理を実行することで対応
します。
この回答への補足
ご回答ありがとうございます!
回答つかないかと思ってたので、うれしいです!
>長時間処理するプログラムに、処理が終わったら
>処理が終了したことを書き込んでもらって、
ファイルをコピーしたり、作成したりする他プロセスは自作ではないので、
「処理が終わったら書き込んでもらう」という処理を追加することができません。
ファイルのSizeやDateLastAccessedプロパティなどで確認してみましたが、
Sizeはコピー開始時にコピー元のサイズになってしまっていますし、
DateLastAccessedはコピー開始後はコピー終了するまで更新されないみたいです。
他に何か案はないものでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/26 17:13
- グループウェア 一太郎がイントラで開けません。対処方法を知りたいです。 3 2023/04/04 13:30
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 09:50
- フリーソフト AOMEI Backupper でバックアップが取れない 2 2022/07/17 22:28
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- その他(ソフトウェア) 特定のpremiere proのファイルが開けなくなりました。 1 2022/11/16 12:31
このQ&Aを見た人はこんなQ&Aも見ています
-
VBでExcelが起動されているか知りたい
Visual Basic(VBA)
-
VBSでExcelのオープン確認
Visual Basic(VBA)
-
ファイルが開かれているかどうかの判断
Visual Basic(VBA)
-
-
4
VBAでCSVファイルが使用中かどうかの確認
Visual Basic(VBA)
-
5
ファイルやフォルダの有無、他のユーザーの使用状況を調べたい
Visual Basic(VBA)
-
6
VBでファイルが開かれているかどうかを確認したい
Visual Basic(VBA)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
OpenTextFile で書き込みできません。
Microsoft ASP
-
9
VBSの処理中一旦処理を止めて再開させたい。
Visual Basic(VBA)
-
10
Excel VBAでほかのアプリケーションで使用中(ロック)のファイルを上書き保存したい
その他(プログラミング・Web制作)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
コマンドプロンプトで、指定したファイルが開いているかを判別をループする方法
その他(プログラミング・Web制作)
-
13
別インスタンスのエクセルを制御したい
Excel(エクセル)
-
14
テキストボックスのカーソル位置の取得・設定方法
Visual Basic(VBA)
-
15
vba セルに入力した時間をマクロで受け取るには?
Excel(エクセル)
-
16
《エクセルVBA》「他の人が該当ファイルを使用中の場合」の処理
Excel(エクセル)
-
17
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
18
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
19
パラメータが少なすぎます。1を指定して下さい。""
Excel(エクセル)
-
20
コンソールアプリケーションのコマンドプロンプト画面を非表示
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF文に時間(何時から何時ま...
-
【C#/Java?】try-catchでcatch...
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
Excel VBA セルの名前があるか...
-
特定のファイルを他のプロセス...
-
エクセルVBA作成時と実行時のエ...
-
『Do ~ Until (0)』の『Until ...
-
バッチファイルでのエラー処理...
-
どう増強すべきか
-
EXCEL-VBAでキー入力で処理を分...
-
VBの実行時の処理の流れ(仕組み...
-
VBSのプログラムをタスクスケジ...
-
private subモジュールを他のモ...
-
順番に処理させたい
-
どうやってもFor文を抜けてしま...
-
UWSCのTHREADについて
-
複数個のTextBoxでいずれかの内...
-
ListViewから選択中の文字列を取得
-
フォルダのアクセス権確認について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
vbaのエラー対応(実行時エラー...
-
private subモジュールを他のモ...
-
マクロで、次のコードへ行く前...
-
シグナル 6(SIGABRT)とは?
-
特定の名前のオートシェイプの...
-
IF文に時間(何時から何時ま...
-
どう増強すべきか
-
特定のファイルを他のプロセス...
-
Word VBA。各マクロの間に待ち...
-
どうやってもFor文を抜けてしま...
-
Excel VBA セルの名前があるか...
-
ExcelのVBAで、選択したファイ...
-
【C#】Page_Loadさせない方法に...
-
StatusStripの表示が更新されな...
-
途中で処理を中断させたい (ア...
-
エクセル VBAで複数セル選択時...
-
Functionで戻り値を複数返す方法
-
VBAでBook読み込み時の非表示方...
-
VBA 複数の行を高速で削除する...
おすすめ情報