- 締切済み
自動で.xlsを閉じて指定フォルダに移動させたい
開いているエクセルファイルが多数あるのですが、今アクティブになっているファイルだけを、上書き保存→閉じる→指定したフォルダに移動までを自動で行なわせたいです。 ・上書き保存はマクロの記憶でできるのですが、閉じるをしてしまうとマクロを終了できない、指定したフォルダに移動はマクロではできなく、教えて下さいませ。ファイルの移動は、名前を付けて保存ではなく、そのファイル自体を移動させたいです。 移動させたいファイルは決まってなくて、その都度変わります。 Sub Macro1() ActiveWorkbook.Save End Sub ・現時点、開いているファイルの保存場所 C:\Documents and Settings\aaa\デスクトップ\作業用 ・移動させたいフォルダ C:\Documents and Settings\aaa\デスクトップ\作業用\保存用
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- sunawachi2
- ベストアンサー率56% (29/51)
ちょっと補足 4行目まちがい ActiveWorkbook.Close Savechanges:=False win7 excel2010なら下記でも問題なく動きます
- sunawachi2
- ベストアンサー率56% (29/51)
FSOを使って移動させル方法があります。 http://officetanaka.net/excel/vba/filesystemobject/filesystemobject23.htm ちょっと作ってみました。 参考にしてください。 Sub 保存して移動する() ActiveWorkbook.Save 元のファイルパス = ActiveWorkbook.FullName ActiveWorkbook.Close savechanges = False 作業用パス = "C:\Documents and Settings\aaa\デスクトップ\作業用" 移動先 = "C:\Documents and Settings\aaa\デスクトップ\作業用\保存用 " ファイル名 = Dir(元のファイルパス) ''ミス回避 If ファイル名 = ThisWorkbook.Name Then MsgBox "自分は移動できない" Exit Sub ElseIf InStr(元のファイルパス, 作業用パス) = 0 Then MsgBox "作業用フォルダ以外のデータのため中止" Exit Sub Else Dim FSO As Object Set FSO = CreateObject("Scripting.FileSystemObject") ''移動します FSO.MoveFile 元のファイルパス, 移動先 Set FSO = Nothing End If End Sub
- web2525
- ベストアンサー率42% (1219/2850)
上書き保存⇒Excel終了⇒ファイル移動 の順ではなく 名前をつけて保存(\作業用\保存用 フォルダ内) ↓ 元ファイルの削除(\作業用 フォルダ内) ※名前をつけて保存した時点で元ファイルの削除は可能になります ↓ Excel終了 の順にすれば問題は無いかと