- 締切済み
【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で一行ずつ進めていくと問題なくリネームを行うことができます。 処理が追い付いていないのか何なのか分からないのですが、何か対策はありますでしょうか? アドバイスお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tate_san
- ベストアンサー率33% (1/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の参照設定を必ず行ってください。
お礼
ご回答ありがとうございます。 早速試してみましたが、ダメでした。 Mkdirもやめて元ファイルと同じフォルダ内を指定してもだめです。 本プログラムは、AccessのVBAにて、CSV吐き出し⇒EXCEL起動⇒CSVの読み込み⇒値のセット⇒名前を付けて保存(xlsファイル)⇒Excel終了といった流れで、ここにExcelで保存したXlsファイルのリネームを行おうと思っています。 リネーム使用としているときにExcelがまだ該当ファイルを開放しきれていないんですかね?