• ベストアンサー

同名ファイルの上書き確認ダイアログを表示させない方法(Excel97VBA)

あるディレクトリに、既存のファイル名と同じ名前を付けて新しく保存しようとすると、上書きの確認ダイアログがでます。 このダイアログを出させずに、無条件で上書きするにはどのようにすればいいのでしょうか? 現在、“Application.AlertBeforeOverwrite = False”として、その次の行に“ActiveWorkbook.SaveAs FileName:="なまえ.xls"としています。 もちろん、保存先のディレクトリには「なまえ.xls」というファイルが存在します。

noname#1997
noname#1997

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

SaveAs の前に  Application.DisplayAlerts = False を追加したらどうでしょうか。確認メッセージを表示しないようにします。今使っているのはExcel2000ですがExcel97も同じでしょう。 ところで、Application.AlertBeforeOverwrite = False は?ですね。不勉強で余りみたことが無いですね。 もしかしてAlertBeforeOverwriting(これもExcel2000です。97は?)なら、ドラッグ アンド ドロップ編集中に上書きする場合、警告メッセージを出すかださない選択する時に使うんですが・・・

noname#1997
質問者

お礼

DisplayAlertsですね。(^^ゞ AlertBeforeOverwriteはおっしゃる通りでした。 ありがとうございました。

その他の回答 (2)

回答No.3

2つの方法を 1つ目 Kill コピー先ファイル名 でコピー先のファイルを消してしまう 2つ目 Application.DisplayAlerts = False で確認メッセージの表示を中止する (これが含まれるプロシージャ内有効) 解除=True 下記より引用 株式会社秀和システム Excel2000VBA実践プログラミング

noname#1997
質問者

お礼

ありがとうございました。

  • tailkuppa
  • ベストアンサー率53% (52/98)
回答No.1

Dir かなんかであらかじめ同名のファイルがあるかをチェックして、あったら先に削除またはリネームしてしまうっていう方法はどうでしょう? もっといい方法はありそうですけど、とりあえず自分はこの手でしのぎました。 該当するファイルが他で使用中だとこの手は使えないと思いますけど。

関連するQ&A

  • Excel/VBAのファイル保存

    いつもここでは大変お世話になっています。 以下のように名前をつけて保存をしているのですが、 同名のファイルがあった場合でも上書き確認せずに上書きをさせる方法を教えて下さい。 お願いします。 ActiveWorkbook.SaveAs Filename:= _ "\\PC名\ディレクトリ名\ファイル名.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False

  • EXCEL/VBA:WORDファイルの上書き保存を確認する方法

    以下のvbaを実行すると、次のように動作します。   test1.xlsを開いて、Atest1.xlsの名前で保存するときに、既にファイルが存在する場合、excelでは上書き保存するか聞いてきます。  しかし、test1.docを開いて、Atest1.docの名前で保存するときは、いきなり上書き保存されます。 wordの場合も上書き保存するか聞くようにするには、どうしたら良いか教えてください。 Workbooks.OpenText Filename:="test1.xls" ActiveWorkbook.SaveAs Filename:="Atest1.xls" ActiveWindow.Close Dim wordApp As Word.Application Dim wordDoc As Word.Document Dim wordRange As Word.Range Set wordApp = New Word.Application wordApp.Visible = True Set wordDoc = wordApp.Documents.Open(ThisWorkbook.Path & "\test1.doc") Set wordRange = wordDoc.Content wordDoc.SaveAs Filename:="Atest1.doc" wordDoc.Close wordApp.Quit

  • VBE 同名ファイルがある場合、上書きしたい

    Dドライブに、 仕訳.xls というファイルがあります。 「保存」マクロを実行すると、不要な行を削除したのち、Dドライブの「経理」フォルダに 決算.xls という名前で保存します。 その一文が、以下で作られています ActiveWorkbook.SaveAs Filename:="D:\経理\決算.xls", FileFormat:= _ xlOpenXMLWorkbook, CreateBackup:=False フォルダ内に同名のファイルがあった時は確認メッセージが出ます。 同名ファイルがあった際、強制的に上書きを行いたいのですが、どこをどう変えればいいかわかりません…

  • VBAでのシートコピーについて

    VBAでシートを新しいブックにコピーして、名前を付けて保存したいのですが、同じファイル名が存在すると、必ず「上書きしますか?」のダイアログが表示されてしまいます。無条件で上書きする方法ってありませんか? 今は↓のようなコードを書いてます。 Application.ScreenUpdating = False Sheets("sheet1").Copy ActiveWorkbook.SaveAs Filename:= _ "C:\Book1.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ CreateBackup:=False ActiveWindow.Close

  • VBA 新規作成したファイルを開くときにエラー

    すみません、助けてください。 Excel 2007のVBAでActiveWorkbook.SaveAsを使って 新規にExcelファイルを生成するものを作成しているのですが、 新たに作成したExcelファイルを開くときにエラー(警告)が出てしまいます。 (ファイル自体は開けるのですが。。。) ソースは以下です。 ------------------------------------------------------------ ' シート枚数を指定 Application.SheetsInNewWorkbook = 3 Workbooks.Add ' 上書き保存 Application.DisplayAlerts = False ' ファイル名を指定して保存 ActiveWorkbook.SaveAs (ThisWorkbook.Path + "\" + "新しいファイル.xls")

  • EXCEL VBA)ファイルを作成する際に「そのファイルは既に存在します」の警告を出さずに上書きしたい

    下記の「AAA」ブックを作成するコードを実行した際に、「そのファイルは既に存在します。上書きしますか[はい][いいえ]」という警告が出ます。この警告を出さずに、即上書きするようにしたいのですが、どうすればよいでしょうか。よろしくお願いします。 ActiveWorkbook.SaveAs Filename:="c:\FILE\AAA.xls" EXCEL2000を使用しています。

  • Excel VBA ファイルの置換確認メッセージ

    Excel VBAでファイルを生成するマクロを組んでいます。 同一パス・ファイル名が存在する場合、 「~は存在します。上書きしますか?」と確認メッセージが表示されますが、このメッセージを出力させなくするには、どうコーディングすればよいでしょうか? 以下はファイル生成の部分です。 ActiveWorkbook.SaveAs Filename:=strFileName, _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", _ ReadOnlyRecommended:=False, CreateBackup:=False Application.WindowState = xlMinimized 想像ですが、ここに何らかのコマンドを追加するのでしょうか? よろしくお願いします。

  • WORD XPでファイル上書き時に警告ダイアログを出したい

    初めて質問します。 よろしくお願いします。 EXCEL XPでは、既存のファイルに対して「名前を付けて保存(A)」を選択すると「ファイル'hoge.xls'は既に存在します。既存のファイルを置き換えますか?」という確認ダイアログが表示されます。 しかし、WORD XPでは、同様の操作を行ってもダイアログが表示されません。間違えて上書きをしてしまうことが多いので、ダイアログが表示されるようにして欲しいのですがなにか設定で出来ないでしょうか。[ツール]→[オプション]は一通り目を通して、ヘルプもみてみましたがそれらしい 説明はありませんでした。 ご存知の方がいらっしゃいましたらご教授願いします。 よろしくお願い致します。

  • SaveAsの保存先について

    エクセルのマクロのついての質問です よろしくお願いします 現在、下記のようなコードでマクロを実行するとパスワードをつけて上書き保存したような結果になっています(元のファイル名も○○.xlsで、指定したものと同一です) Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="○○.xls", FileFormat:=xlNormal, Password:="1111", WriteResPassword:="2222", ReadOnlyRecommended _ :=False, CreateBackup:=False Application.DisplayAlerts = True 私の目的としてはそれでよいのですが、このように格納先を指定しなかった場合は 必ず元のファイルと同一のフォルダになるってくれるものなのでしょうか? それとも状況によって別なところに名前をつけて保存されてしまったりすることがありますか?

  • VBA 新規にエクセルを開き既存のファイルを開く

    VBAで新規にエクセルのアプリケーションを起動し、 その中に既存のファイルを起動する方法は有りますか? Sub Sample() Dim appExcel As Excel.Application Dim WSH As Variant Dim strPath As String Set appExcel = New Excel.Application Set WSH = CreateObject("Wscript.Shell") strPath = ActiveWorkbook.Path With appExcel .Visible = True .Workbooks.Add .ActiveWorkbook.SaveAs (strPath & "\ test.xls") End With Set WSH = Nothing End Sub このコードは、ネットから拾ったサンプルコードなのですが 新しいアプリケーションでエクセルを立ち上げることはできたのですが 新規のブックが開いてしまい、 更に、開きたいファイルに上書き保存してしまいそうです。 新規のブックが開く原因は .Workbooks.Addで、 上書き保存する原因は .ActiveWorkbook.SaveAs だとわかってるのですが、 この部分を同変更すればいいのかがわかりません。 Workbooks.Open?Filename:="C:\Users\test.xlsx" だと、現在実行しているvbaファイルを同じ枠内で 該当のファイルが開いてしまいます。

専門家に質問してみよう