• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA 同じ場所に保存する)

VBAで同じ場所に保存する方法

このQ&Aのポイント
  • VBAを使用して、部署ごとに分割されたブックを同じ場所に保存する方法について教えてください。
  • 保存場所はデスクトップになっていますが、任意の場所に変更することも可能です。
  • マクロを実行すると、指定した場所にブックが保存され、元のブックは削除されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.4

よく見たらActiveWorkbookは未保存ですからActiveWorkbook.Path は駄目でした myPath = ThisWorkbook.Path & "\"

nkmyr
質問者

お礼

ありがとうございます。 うまくいけました。

その他の回答 (3)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

最後に\が必要でした myPath = ActiveWorkbook.Path & "\"

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.2

ActiveWorkbookの場所でしたら ActiveWorkbook.Pathが使えます myPath = ActiveWorkbook.Path

  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

>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" ※パスの最後に¥マークはつけないでください。

nkmyr
質問者

お礼

ありがとうございます。 一つ上のフォルダに保存しておりました。 myPath = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\") - 1) ↓ myPath = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, "\") ) にすることでできました。 他に細かな保存方法を教えていただきありがとうございます。