アプリ版:「スタンプのみでお礼する」機能のリリースについて

いつもながらExcelのマクロについて質問です。

Dim 保存 As FileDialog
Set 保存 = Application.FileDialog(msoFileDialogSaveAs)
If 保存.Show = -1 Then
保存.Execute
End If
Set 保存 = Nothing

これで[名前を付けて保存]が表示されますよね。

ここで質問です。
この画面でファイル名の候補を
例えば test のように表示させるには
どうしたらいいのでしょうか。

そのまま[保存]を押せば test.xls で保存されるし
ちょっと手を入れて test2.xls にもできるようにしたいのです。
また、もし同じ名前のファイルがすでにあれば
上書きするかどうかの確認表示をさせることにより
上書きしたり、別の名前に変えたりしたいと思います。

以上、よろしくお願いいたします。

A 回答 (6件)

こんばんは。



#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
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/03/16 21:12

[回答番号:No.5] Wendy02 さん、補足ありがとうございました。



>#4さんのは、Application.DisplayAlerts = False を使えばよいです。
 私も、そうかなと思ったのですが、
>もし同じ名前のファイルがすでにあれば上書きするかどうかの確認表示をさせる
と書いてありましたので、確認もせずに、回答を取り下げてしまいました。

 ちゃんと動くようですね。  (^。^;) ホッ
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/03/16 21:20

[回答番号:No.2] の DOUGLAS_ です。



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

 [回答番号:No.2] は取り消します。大変失礼いたしました。

 <(_ _)>
    • good
    • 0

>また、もし同じ名前のファイルがすでにあれば



ファイルの存在の有無は、
Dir関数の戻り値を使う、
FileSystemObjectのFileExistsを使う、
などの方法があります。

既存のダイアログを使うことにこだわりがないのなら、
ユーザーフォームなどで自作のダイアログを用意し、
ユーザーに名前を入力させ、フォルダを指定させた後に
Dir関数やFileSystemObjectのFileExistsで既存ファイル
との重複チェックを行い、重複していなかったら保存、
重複していたら再度名前を入力させるか保存をキャンセル
するとさいてはいかがでしょう?
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/03/16 21:22

保存.InitialFileName = "test"


でいかがでしょうか?
    • good
    • 0

フォルダの指定まではしていませんが・・・。



Dim namae As String
namae = "hoge"
Application.Dialogs(xlDialogSaveAs).Show namae
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/03/16 21:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!