- ベストアンサー
VBAで同じ場所に保存する方法
- VBAを使用して、部署ごとに分割されたブックを同じ場所に保存する方法について教えてください。
- 保存場所はデスクトップになっていますが、任意の場所に変更することも可能です。
- マクロを実行すると、指定した場所にブックが保存され、元のブックは削除されます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
よく見たらActiveWorkbookは未保存ですからActiveWorkbook.Path は駄目でした myPath = ThisWorkbook.Path & "\"
その他の回答 (3)
- kkkkkm
- ベストアンサー率66% (1719/2589)
最後に\が必要でした myPath = ActiveWorkbook.Path & "\"
- kkkkkm
- ベストアンサー率66% (1719/2589)
ActiveWorkbookの場所でしたら ActiveWorkbook.Pathが使えます myPath = ActiveWorkbook.Path
- eden3616
- ベストアンサー率65% (267/405)
>Set WSH = CreateObject("Wscript.Shell") >myPath = WSH.specialfolders("Desktop") & "\" ここでmyPath変数にデスクトップのパスを格納し >ActiveWorkbook.SaveAs Filename:=myPath & ActiveSheet.Name ここで、現在表示されているブックを上記ファイルパス+シート名で保存しています。 前者のファイルパスを格納している部分を目的の保存フォルダーのパスに変更すれば保存先を変えることができます。 >これを同じ場所に保存 同じ場所が何を意味しているか解りませんが以下のパターンで良ければ変更することで保存場所を変えることができます。 1)マクロを記述しているブックと同じ場所に保存する場合 Set WSH = CreateObject("Wscript.Shell") myPath = WSH.specialfolders("Desktop") & "\" ↓ myPath = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\") - 1) 2)特定のフォルダパスに保存する場合(例:C:\TESTに保存する場合) Set WSH = CreateObject("Wscript.Shell") myPath = WSH.specialfolders("Desktop") & "\" ↓ myPath ="C:\TEST" ※パスの最後に¥マークはつけないでください。
お礼
ありがとうございます。 一つ上のフォルダに保存しておりました。 myPath = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\") - 1) ↓ myPath = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\") ) にすることでできました。 他に細かな保存方法を教えていただきありがとうございます。
お礼
ありがとうございます。 うまくいけました。