• ベストアンサー

Excelのマクロで[名前を付けて保存]に候補のファイル名を表示したい

いつもながらExcelのマクロについて質問です。 Dim 保存 As FileDialog Set 保存 = Application.FileDialog(msoFileDialogSaveAs) If 保存.Show = -1 Then 保存.Execute End If Set 保存 = Nothing これで[名前を付けて保存]が表示されますよね。 ここで質問です。 この画面でファイル名の候補を 例えば test のように表示させるには どうしたらいいのでしょうか。 そのまま[保存]を押せば test.xls で保存されるし ちょっと手を入れて test2.xls にもできるようにしたいのです。 また、もし同じ名前のファイルがすでにあれば 上書きするかどうかの確認表示をさせることにより 上書きしたり、別の名前に変えたりしたいと思います。 以上、よろしくお願いいたします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんばんは。 #4さんのは、Application.DisplayAlerts = False を使えばよいです。 例: With Application.FileDialog(msoFileDialogSaveAs)  .InitialFileName = "Test11"  Application.DisplayAlerts = False  If .Show = -1 Then   .Execute  End If  Application.DisplayAlerts = True End With

niftynejp
質問者

お礼

ありがとうございました! おかげさまで 期待通りの結果を得ることができました。 これをもとに これからさらにいろいろな操作ができそうです。 今後ともよろしくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.6

[回答番号:No.5] Wendy02 さん、補足ありがとうございました。 >#4さんのは、Application.DisplayAlerts = False を使えばよいです。  私も、そうかなと思ったのですが、 >もし同じ名前のファイルがすでにあれば上書きするかどうかの確認表示をさせる と書いてありましたので、確認もせずに、回答を取り下げてしまいました。  ちゃんと動くようですね。  (^。^;) ホッ

niftynejp
質問者

お礼

いろいろとありがとうございました。 おかげさまで [名前を付けて保存]にファイル名を表示する方法が よく分かりました。 また何かありましたら、よろしくお願いします。

すると、全ての回答が全文表示されます。
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.4

[回答番号:No.2] の DOUGLAS_ です。  [回答番号:No.2] は、「Show メソッドの直後に Execute メソッドを使用して、ユーザーのアクションを実行」するという FileDialog オブジェクト の仕様を阻むのか、エラーになってしまいますね。  [回答番号:No.2] は取り消します。大変失礼いたしました。  <(_ _)>

すると、全ての回答が全文表示されます。
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

>また、もし同じ名前のファイルがすでにあれば ファイルの存在の有無は、 Dir関数の戻り値を使う、 FileSystemObjectのFileExistsを使う、 などの方法があります。 既存のダイアログを使うことにこだわりがないのなら、 ユーザーフォームなどで自作のダイアログを用意し、 ユーザーに名前を入力させ、フォルダを指定させた後に Dir関数やFileSystemObjectのFileExistsで既存ファイル との重複チェックを行い、重複していなかったら保存、 重複していたら再度名前を入力させるか保存をキャンセル するとさいてはいかがでしょう?

niftynejp
質問者

お礼

回答、ありがとうございます。 私にはちょっと難しいお話のようですが もっと勉強しようと思います。 これからもよろしくお願いします。

すると、全ての回答が全文表示されます。
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

保存.InitialFileName = "test" でいかがでしょうか?

すると、全ての回答が全文表示されます。
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

フォルダの指定まではしていませんが・・・。 Dim namae As String namae = "hoge" Application.Dialogs(xlDialogSaveAs).Show namae

niftynejp
質問者

お礼

回答、ありがとうございます。 これで[名前を付けて保存]に ファイル名が表示されました。 すぐに使えそうです。 これからもよろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A