• 締切済み

【VBA】プログラムが飛ばされてしまう

ACCESS2003なのですが、一連のプログラムの最後で、指定のEXCELファイルのリネーム(移動)を行いたいのですが、エラーも出ずにそのステップだけ処理が行われません。 以下ソースですが、 Dim filename As String Dim dirname As String filename = "TEST" dirname = "C:\データ解析\TESTフォルダ" MkDir dirname Name "C:\データ解析\出力結果.xls" As dirname & "\" & filename & ".xls" MsgBox  dirname & "\" & filename & ".xlsに保存しました" MkDirは実行されてフォルダの作成はされます。 Name~ が実行されずに困っています。 ただし、デバッグモードで、キーボードのF8で一行ずつ進めていくと問題なくリネームを行うことができます。 処理が追い付いていないのか何なのか分からないのですが、何か対策はありますでしょうか? アドバイスお願いいたします。

みんなの回答

  • tate_san
  • ベストアンサー率33% (1/3)
回答No.3

私も以前ファイルの移動・保存は苦労しました。現在は、ファイルシステムオブジェクトを利用しています。 Dim fs As New FileSystemObject Dim filename As String Dim dirname As String filename = "TEST" dirname = "C:\データ解析\TESTフォルダ" If fs.FolderExists(dirname) = False Then fs.CreateFolder (dirname) fs.MoveFile "C:\データ解析\出力結果.xls", dirname & "\" & filename & ".xls" MsgBox dirname & "\" & filename & ".xlsに保存しました" これで、出力結果.xlsをTESTフォルダにTEST.xlsに名前を変更して保存できます。 ※Microsoft Scripting Runtimeの参照設定を必ず行ってください。

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.2

移動をやめてコピーにすればよいのでは。 元ファイルはバックアップとしておいといて 日にちを決めて削除するようにすればよいのでは。 -- FileCopy "C:\データ解析\出力結果.xls" , dirname & "\" & filename & ".xls"

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.1

ディレクトリが作成されるまで待てばよいのでは。 --- MkDir dirname Do While Dir(dirname, vbDirectory) = "" Loop

kimura5188
質問者

お礼

ご回答ありがとうございます。 早速試してみましたが、ダメでした。 Mkdirもやめて元ファイルと同じフォルダ内を指定してもだめです。 本プログラムは、AccessのVBAにて、CSV吐き出し⇒EXCEL起動⇒CSVの読み込み⇒値のセット⇒名前を付けて保存(xlsファイル)⇒Excel終了といった流れで、ここにExcelで保存したXlsファイルのリネームを行おうと思っています。 リネーム使用としているときにExcelがまだ該当ファイルを開放しきれていないんですかね?

関連するQ&A