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
VBscriptが起動しない?
Microsoft ASP
-
8
[VBScript]ファイルの削除
Visual Basic(VBA)
-
9
《エクセルVBA》「他の人が該当ファイルを使用中の場合」の処理
Excel(エクセル)
-
10
VB6 使用中ファイルの確認
Visual Basic(VBA)
-
11
コマンドプロンプトの「%1」と「%~1」の違いがわからない
その他(プログラミング・Web制作)
-
12
既に開いているエクセルを閉じるには?
その他(Microsoft Office)
-
13
vbsからのExcelマクロ呼び出しの際に保存ダイアログが表示されてしまう
その他(プログラミング・Web制作)
-
14
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
15
CSVファイルが開かれているかどうか
Visual Basic(VBA)
-
16
VBのFunctionで、配列を引数や返却値にできますか?
Visual Basic(VBA)
-
17
[VBScript][wsh]byte単位でのデータの切り出し
Visual Basic(VBA)
-
18
VBScriptで引数を省略したい場合
その他(プログラミング・Web制作)
-
19
VBSで応答不要のメッセージボックスを表示したい
その他(パソコン・スマホ・電化製品)
-
20
split関数で区切り文字がない場合
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
vbaのエラー対応(実行時エラー...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
シグナル 6(SIGABRT)とは?
-
特定の名前のオートシェイプの...
-
ExcelのVBAで、選択したファイ...
-
どうやってもFor文を抜けてしま...
-
マクロで、次のコードへ行く前...
-
Functionで戻り値を複数返す方法
-
フォルダのアクセス権確認について
-
ListViewから選択中の文字列を取得
-
VBA For Each 〜 複数条件について
-
VB6にてネットワーク上にある共...
-
【VBA】エラー処理で別プロシー...
-
cobolのコントロールブレイク
-
VBA 複数の行を高速で削除する...
-
どう増強すべきか
-
VCでビープ音を鳴らし続ける
-
VBAでBook読み込み時の非表示方...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
private subモジュールを他のモ...
-
特定の名前のオートシェイプの...
-
vbaのエラー対応(実行時エラー...
-
iPhoneのニューラルエンジンっ...
-
マクロで、次のコードへ行く前...
-
ExcelのVBAで、選択したファイ...
-
どうやってもFor文を抜けてしま...
-
Excel VBA セルの名前があるか...
-
Functionで戻り値を複数返す方法
-
特定のファイルを他のプロセス...
-
シグナル 6(SIGABRT)とは?
-
【VBA】エラー処理で別プロシー...
-
エクセル VBAで複数セル選択時...
-
どう増強すべきか
-
Word VBA。各マクロの間に待ち...
-
シェルスクリプトでファイル内...
-
VBA 複数の行を高速で削除する...
-
【Vb.net】プリンタジョブの取得
おすすめ情報