• ベストアンサー

保存場所を指定する(VBA)

エクセルでVBAを使用し、業務書類を作っていますが、 書類を保存する際に、指定場所に自動で保存させたいと思っています。 現在使用しているものは、下記の通りですが、 これでは、元ファイルと同じ場所に保存されてしまうので 元ファイルを削除されてしまうなどの恐れがあります。 そこで、フォルダを作りそのフォルダに自動的に保存したいと 思っています。フォルダは元ファイルがある下に作りたいと思います。 宜しくお願いします。 下記現在のものです。 Sub 保存() タイトル = "確認" メッセージ = "ファイルを保存します。よろしいですか?" スタイル = vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal yesno = MsgBox(メッセージ, スタイル, タイトル) If yesno = vbYes Then Sheets("新築").Select パス = ActiveWorkbook.Path 別名 = Application.InputBox(prompt:="拡張子(.xls)は不要です", _ Title:="保存用のブック名を入力してください", Type:=2) ' 別名 = パス & "\" & 別名 & ".xls" Sheets(Array("見積新築")).Copy ActiveWindow.DisplayWorkbookTabs = False ActiveWorkbook.SaveAs Filename:=別名 ActiveWorkbook.Close MsgBox "書類を保存しました。", vbInformation, "保存完了" End If End Sub

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

現在は > 別名 = パス & "\" & 別名 & ".xls" となっているので元のBOOKと同じところに保存されますが、新しいフォルダを元ファイルがある下に作っておけば、 別名 = パス & "\" & "新しいフォルダ名\" & 別名 & ".xls" でOKです。

sumi3377
質問者

お礼

なるほど、簡単なことですね。 ありがとうございました。 予定通り完成しました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

特別に1つのフォルダを(手動操作で)作るのでしょう。 フォのホルダへの保存は動かないのでしょう。 そのフォルダまでのフルパス+ファイル名 で保存したら仕舞いでしょう。何が疑問か。 ファイル名をその都度指定させるのかの方が難しさを「左右する。 例では都度にんげんが指定らしいが。 ファイル保存のダイアロウグもVBAで扱えるから調べてみたら。そのダイアロウグの保存先もコードで固定(指定)できるよ。

sumi3377
質問者

お礼

予定通り完成しました。 ありがとうございました。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

フォルダ名+"\"+ファイル名 で条件を与えるのが可能なら。 >別名 = Application.InputBox(prompt:="拡張子(.xls)は不要です", _ >Title:="保存用のブック名を入力してください", Type:=2) ' >別名 = パス & "\" & 別名 & ".xls" を 別名 = Application.InputBox(prompt:="フォルダ名\ファイル名でお願いします" & vbLf & "拡張子(.xls)は不要です", _ Title:="保存用のブック名を入力してください", Type:=2) ' If Dir(パス & "\" & Split(別名, "\")(0), vbDirectory) = "" Then MkDir パス & "\" & Split(別名, "\")(0) 別名 = パス & "\" & 別名 & ".xls" としてみるとか?

sumi3377
質問者

お礼

予定通り完成しました。 皆様のアドバイスが大変参考になりました。

関連するQ&A