ここから本文です

エクセルVBA初心者です。 ご回答お願い致します。 現在、「名前を付けて保存...

アバター

ID非公開さん

2017/2/2419:12:07

エクセルVBA初心者です。

ご回答お願い致します。

現在、「名前を付けて保存」のVBAを作成しています。

マクロを実行すればダイアログが開き、
指定した文字列がファイル名としてデフォルト設定されるように作成しました。

ただ、「名前を付けて保存」のダイアログ上で
指定したフォルダに保存したいのですが、うまくいきません。
色々と検索はしたのですが、お手上げ状態です。

下記のコードに「フォルダ指定のコード」を加える形でアドバイスをしていただければ幸いです。

よろしくお願い申し上げます。

-----------------------------------------------------------------------------------------------------------------------------

Private Sub SAVE_AS()

Dim fname, AMsg As String

AMsg = MsgBox("このファイルを名前を付けて保存しますか?", vbOKCancel)


If AMsg Then

End If

'名前を付けて保存ダイアログ

If AMsg = vbOK Then

fname = Application.GetSaveAsFilename(InitialFileName:=Range("AJ29").Value, FileFilter:="Excelファイル,*.xlsm")

End If

If AMsg = vbCancel Then

Exit Sub

Else

End If


If fname = "False" Then
'キャンセルの場合
Exit Sub
Else
'ブックを保存する

ActiveWorkbook.SaveAs Filename:=fname

End If


End Sub

閲覧数:
100
回答数:
2
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

kky********さん

2017/2/2419:37:10

下記でうまくいくと思います。
条件により処理をせず終了する時は同じ行で、Then Exit Sub を書いてしまう方がわかりやすいです。

Private Sub SAVE_AS()
Dim fname, AMsg As String
AMsg = MsgBox("このファイルを名前を付けて保存しますか?", vbOKCancel)
If AMsg = vbCancel Then Exit Sub
fname = Application.GetSaveAsFilename(InitialFileName:=Range("AJ29").Value, FileFilter:="Excelファイル,*.xlsm")
If fname = "False" Then Exit Sub
ActiveWorkbook.SaveAs Filename:=fname
End Sub

  • アバター

    質問者

    ID非公開さん

    2017/2/2419:43:06

    さっそく、ありがとうございます。

    恐れ入りますが、指定したフォルダのコードはどちらに書けば良いんでしょうか?

  • その他の返信を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

アバター

質問した人からのコメント

2017/2/24 21:10:37

無事に作業が完了しました!何度もお答えいただき、ありがとうございます。
ベストアンサーとさせていただきます。

ベストアンサー以外の回答

1〜1件/1件中

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる