• 締切済み

ExcelのVBAで上書き保存を確認したい

VBAでGetSaveAsFilename メソッドを使うと、[名前を付けて保存]ダイアログボックスがでます。 ここでファイル名を指定するのですが、このとき同フォルダ内に同ファイル名があった場合でも、何のメッセージボックスもださずに上書きされてしまいます。 同フォルダ内に同ファイル名があった場合のみ、「上書き保存しますか?」というメッセージボックスをだしたいのですが、どのようにしたらよいでしょうか。 教えてください。 よろしくお願いします。

みんなの回答

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

ファイル名があるか、について参考コード Sub test01() filesavename = Application.GetSaveAsFilename( _ fileFilter:="エクセル ファイル (*.xls), *.xls") If filesavename <> False Then MsgBox "保存するファイル :" & filesavename End If Set objfs = CreateObject("Scripting.FileSystemobject") If objfs.fileexists(filesavename) Then MsgBox filesavename & "存在します" Else MsgBox filesavename & "存在しましません" End If End Sub ーー ただこういうのは必要無いのでは。 チェックしなくても指定ファイル名が既存であると、警告メッセージが出ませんか。

A-boy
質問者

お礼

回答ありがとうございます。

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

GetSaveAsFilename メソッドはSaveする機能はありませんよ? あくまでも保存先を選んでくださいというダイアログを表示させて、ファイルのパスを返すだけです(メゾットの名称も日本語訳すれば「保存するためのファイル名を取得する」でしょ?)。 実際にはその後にSaveAsメゾットで保存させるでしょうから、その際にアラートを出さないというような指定をしなければ通常は警告がでるはずですが。 具体的なソースを提示されてみては如何でしょうか。

A-boy
質問者

お礼

回答ありがとうございます。

関連するQ&A