- ベストアンサー
ファイルをまちうけして別フォルダにコピーする
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" _ (ByVal lpszPath As String) As Long Private Sub Command1_Click() Dim P as string,P1 as string Dim Hiduke as string Hiduke=year(date) & month(date) & day(date) _ & hour(time) &second(time) P = "c:\FOLD1\DATA.TXT" P1="C:\FOLD1\Back\Hiduke & "data.txt" Do If PathFileExists(P) Then filecopy P,P1 kill P End if Loop End Sub 以上のように実行するとすぐビジー状態になる。 data.txtは短くて30秒、長くて30分単位に作成される どうしたらビジー状態にならないようになるのですか
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
> Hiduke=year(date) & month(date) & day(date) _ & hour(time) &second(time) Hiduke=Format(Now(),"yymmddhhmmss") が簡単かと思います。 > P1="C:\FOLD1\Back\Hiduke & "data.txt" ファイル名が、Hidukedata.txt になりますよね。 P1="C:\FOLD1\Back\" & Hiduke & "data.txt" 等にすべきかとおもいますが・・・。 >タイマー監視とはどういう使い方になるのですか? 一定間隔でタイマーイベントを発生させて、そのイベントを受け取って任意の動作(今回はファイルチェック&コピー)を実行するようにすると、パソコンの負荷も軽くなると思います。 タイマーの使い方や注意などは下記サイトを参考にしてください。 数秒単位でファイルチェックできるようにすれば大丈夫ではないでしょうか。
その他の回答 (2)
- hana-hana3
- ベストアンサー率31% (4940/15541)
>以上のように実行するとすぐビジー状態になる。 Do : Loop って、どうやって脱出(終了)するのでしょうか? これが繰り返されている限り、ビジーになってしまうと思いますが? >短くて30秒、長くて30分単位に作成される タイマー監視の方が良いのでは? VBA使いですが、他にも何点か不備があるように思います。 ループ外でフォルダ名を決定していますので、正常に動いても、全て同じフォルダに上書きされてしまうように思いますが・・・。
お礼
ありがとうございます。 ここの部分 Hiduke=year(date) & month(date) & day(date) _ & hour(time) &second(time) P = "c:\FOLD1\DATA.TXT" P1="C:\FOLD1\Back\Hiduke & "data.txt" Do~Loopのなかに書かなければなりませんよね パソコンをつけた時から切断するまで実行したいので このようになりました。 タイマー監視とはどういう使い方になるのですか?
- ggandt
- ベストアンサー率41% (5/12)
ビジーになるというのは、ウインドウが真っ白になり、終了ボタンなどが効かなくなる、という意味でいいですか? Loop の 前の行に DoEvents を入れればいいのではないでしょうか。
お礼
無事、解決しました。ありがとうございました。 いまVBに取り組んでいます。また、質問すると思いますが、よろしくお願い致します。