一回も披露したことのない豆知識

開いているエクセルファイルが多数あるのですが、今アクティブになっているファイルだけを、上書き保存→閉じる→指定したフォルダに移動までを自動で行なわせたいです。

・上書き保存はマクロの記憶でできるのですが、閉じるをしてしまうとマクロを終了できない、指定したフォルダに移動はマクロではできなく、教えて下さいませ。ファイルの移動は、名前を付けて保存ではなく、そのファイル自体を移動させたいです。

移動させたいファイルは決まってなくて、その都度変わります。

Sub Macro1()
ActiveWorkbook.Save
End Sub

・現時点、開いているファイルの保存場所
C:\Documents and Settings\aaa\デスクトップ\作業用

・移動させたいフォルダ
C:\Documents and Settings\aaa\デスクトップ\作業用\保存用

A 回答 (3件)

ちょっと補足


4行目まちがい
ActiveWorkbook.Close Savechanges:=False


win7 excel2010なら下記でも問題なく動きます
    • good
    • 0

FSOを使って移動させル方法があります。




http://officetanaka.net/excel/vba/filesystemobje …

ちょっと作ってみました。
参考にしてください。


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
    • good
    • 0

上書き保存⇒Excel終了⇒ファイル移動



の順ではなく

名前をつけて保存(\作業用\保存用 フォルダ内)

元ファイルの削除(\作業用 フォルダ内)
※名前をつけて保存した時点で元ファイルの削除は可能になります

Excel終了

の順にすれば問題は無いかと
    • good
    • 3

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報