プロが教えるわが家の防犯対策術!

FileSystemObjectでファイルをコピーしたく、下記のようなコードを書きました。
SYSFILEはファイル名です。(拡張子なし)
*******************************************************
Dim objFileSys

SYSFILE
Set objFileSys = CreateObject("Scripting.FileSystemObject")

objFileSys.CopyFile("C:\TEST\", "C:\REAL\SYSFILE")

C:\REAL\SYSFILE"を編集して"C:\REAL\SYSFILE_NEW"を作成(コード省略)

SYSFILE_NEWを読み込んで最終行の番号を取得(コード省略)

’取得した番号にリネームコピー
objFileSys.CopyFile("C:\REAL\SYSFILE_NEW", "C:\REAL\XXX")←★ 
*******************************************************

★のCopyFileで「ファイルが見つかりません」のエラーになります。
"C:\REAL\SYSFILE_NEW"は確実に作成されて存在しますが発生します。
おかしいと思って直前にFileExistsをしてもFalseになります。
エクスプローラー上では確かに存在するし、コピーもできます。
実際はファイル名の箇所は変数名なので中身を確認しようと★の直前行で
echoで出力してみたが、変数の中身も問題ありませんでした。

おかしいのがその後です。

今度はエラーにならずに処理が通りました。
直前にechoでダイアログを表示させた場合にはエラーが発生しません。
その記述を削除するとまた発生します。

考えられる原因を教えていただきたいです…

A 回答 (1件)

C:\REAL\SYSFILE"を編集して"C:\REAL\SYSFILE_NEW"を作成(コード省略)



SYSFILE_NEWを読み込んで最終行の番号を取得(コード省略)

      ↑
この部分に問題があるのでは?
どうやってるのかわからないんですが、例えばファイルを閉じてないためCopyFileでファイルが取得できないとか、そういったことはないでしょうか。
    • good
    • 0
この回答へのお礼

その通りでした。ありがとうございます

お礼日時:2014/05/30 13:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!