- ベストアンサー
保存場所を指定する(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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
現在は > 別名 = パス & "\" & 別名 & ".xls" となっているので元のBOOKと同じところに保存されますが、新しいフォルダを元ファイルがある下に作っておけば、 別名 = パス & "\" & "新しいフォルダ名\" & 別名 & ".xls" でOKです。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
特別に1つのフォルダを(手動操作で)作るのでしょう。 フォのホルダへの保存は動かないのでしょう。 そのフォルダまでのフルパス+ファイル名 で保存したら仕舞いでしょう。何が疑問か。 ファイル名をその都度指定させるのかの方が難しさを「左右する。 例では都度にんげんが指定らしいが。 ファイル保存のダイアロウグもVBAで扱えるから調べてみたら。そのダイアロウグの保存先もコードで固定(指定)できるよ。
お礼
予定通り完成しました。 ありがとうございました。
- n-jun
- ベストアンサー率33% (959/2873)
フォルダ名+"\"+ファイル名 で条件を与えるのが可能なら。 >別名 = 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" としてみるとか?
お礼
予定通り完成しました。 皆様のアドバイスが大変参考になりました。
お礼
なるほど、簡単なことですね。 ありがとうございました。 予定通り完成しました。