- ベストアンサー
「上書き保存確認ダイアログ」を出すには?
エクセル2000をベースにマクロ(VBA)を使って、ある技術計算をさせています。 セルに計算の元になるデータを手入力するのですが、 最終的には、その元になるデータをテキストファイルとして保存させているのですが、保存先に同じファイル名(エクセルの方ではなく、テキストファイル)があっても強制的に上書きされてしまいます。 同じ名前が合った場合は、上書き保存確認のダイアログを表示させたいのですが、どのようにすればよいでしょうか? 保存するのは、入力したデータのテキストのみで、エクセルのファイルは保存しません。
- smilepick
- お礼率31% (75/240)
- オフィス系ソフト
- 回答数3
- ありがとう数2
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
FileSystemObjectを使った例です。 Option Explicit Public Sub TEST() MsgBox checkAllowOverwrite("\a.txt") End Sub Public Function checkAllowOverwrite(ByVal fileName As String) As Boolean Dim oFS Dim r As VbMsgBoxResult Set oFS = CreateObject("Scripting.FileSystemObject") If oFS.FileExists(fileName) Then Dim msg As String msg = fileName & "は存在します。" & Chr(13) msg = msg & "上書きしますか?" & Chr(13) & Chr(13) r = MsgBox(msg, vbYesNo, "上書き確認") If r = vbYes Then checkAllowOverwrite = True Else checkAllowOverwrite = False End If Else checkAllowOverwrite = True End If Set oFS = Nothing End Function
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17068)
(1)あるところに載っていた例です。 If (Dir("c:\3-" & Fname & ".XLS")) = "" Then '同名ファイルのチェック ActiveWorkbook.SaveAs Filename:="C:\3-" & Fname Else MsgBox Fname & " と同名ファイルがあります", vbExclamation End If DIR関数を使います。 ファイル名と拡張子xlsをCSVなどに変えてください。 (2)ファイル保存のダイアログもありますが。 Sub test02() Application.Dialogs(xlDialogSaveAs).Show End Sub でも同名の確認は出ます。 (3) Sub test01() ActiveWorkbook.SaveAs "aaa14.xls" End Sub を実行しても、同名のファイルがあると確認メッセージが出ます。 これらではだめでしょうか。
- anmochi
- ベストアンサー率65% (1332/2045)
どのようにテキストファイルを保存しているのかにもよるのだが、例えば昔なつかしOpenやCloseを使っているのなら、Dir関数でも使って先にファイルがあるかどうか調べて、あったら自前でダイアログを出してやればよいのではないかな。
関連するQ&A
- エクセルで上書き保存できない
取引先から送られてきたエクセルのデータがあります。 私のほうでデータを加工するために、何かを入力し、 「上書き保存」を実行すると 「ファイルを保存できませんでした。」というメッセージが表示されます。 「名前をつけて保存」も出来ませんでした。 ちなみに、このファイルにはマクロを含んでいます。 ファイルを保存できないことと、マクロが関係あると思うのですが、私はマクロの知識が乏しいため、よくわかりません。 なぜ、保存できないのでしょうか? また、保存できるようにする方法はありますでしょうか?
- ベストアンサー
- オフィス系ソフト
- Excelで上書き保存時の確認をはずしたい。
またお世話になります。 以前EXCELのマクロに付いてココで質問させて貰った物です。 皆様のおかげで無事エクセルVBAを保存時に消したいという質問 (http://okwave.jp/qa3859010.html 参照)は 解決できました!ありがとうございました。 で、質問なのですが、 通常、上書き保存をする時はファイル→上書き保存をすると 何も聞かずに保存がされると思います。 が、VBAを保存時に消したファイルに関して上書き保存をかけると ファイル’****.xls’は前回保存された後、ほかのユーザーによって変 更された可能性があります。操作を選択してください ・コピーを保存する(S) ・変更を上書きする(O) という警告?が出てきます。 現状変更を上書きするを選択して上書き保存をするようにしていますが、 なんで出てくるのでしょうか? そして、どうやったら出ないように出来るのでしょうか? マクロを保存時に消したファイルだけこの現象になり 新規で作ったファイルなどは何も警告が出ずに上書き保存が出来ます。 ちなみにツール-ブックの共有-編集の”複数のユーザーによる同時編集と、ブックの結合を許可する(A)”にチェックマークは付いていません。 過去(2005年頃に同じような質問が検索であったのですが、答えが 確定していなかったので質問させて頂きます。)
- ベストアンサー
- オフィス系ソフト
- 助けて下さい 誤って上書き保存してしまいました
業務中、エクセルのファイル名を誤って上書き保存してしまいました 本当は、上書き保存してはいけないファイルの名前で保存してしまいました 復旧方法を教えて下さい 「そのファイル名で保存して」と言われて上書き保存したエクセルデータは書き換えてはいけないファイルだったんです 2~3時間してから「アカンかったんよ~」と言われ青くなってます 助けて下さい
- ベストアンサー
- オフィス系ソフト
- メッセージを表示させずに、上書きしたい・・・
アクセス97、エクセル97を使用しています。 2点、質問です。 (1)アクセスのマクロ「エクセル出力」の実行時に、『ファイル*.xlsは、既に存在します。上書きしますか?』というメッセージがでます。そして、ここは、いつも『はい』で進みます。 →この場合、このメッセージを表示させないで、エクセルファイルを上書きするというマクロまたは、VBAはありませんか? (2)(1)で"上書き保存"をした後に、必ず、エクセルが立ち上がってきてしまいます。 →エクセルが立ち上がらないようにしたいのですが、そのようなマクロまたは、VBAはありませんか? すみませんが、宜しくお願い致します。
- 締切済み
- Windows XP
- ExcelのVBAで上書き保存を確認したい
VBAでGetSaveAsFilename メソッドを使うと、[名前を付けて保存]ダイアログボックスがでます。 ここでファイル名を指定するのですが、このとき同フォルダ内に同ファイル名があった場合でも、何のメッセージボックスもださずに上書きされてしまいます。 同フォルダ内に同ファイル名があった場合のみ、「上書き保存しますか?」というメッセージボックスをだしたいのですが、どのようにしたらよいでしょうか。 教えてください。 よろしくお願いします。
- 締切済み
- Visual Basic
- 上書き保存
エクセル入力中 まちがって違うデータを上書き保存してしまい、ほしいデータがなくなってしまいました。 データが復活する方法はないですか? 教えてください。
- 締切済み
- その他(ビジネス・キャリア)
- エクセル 上書き保存ミスを復活はしないのですか??
間違って大事なエクセルファイルを上書き保存してしまいました。 もう上書き保存してしまったら元のファイルにはもどせないのでしょうか? 元のファイルは資料がもうなく他にデータを管理していませんでした。 どうしても必要な書類でふっかつさせたいのですがどうにかできないものでしょうか??
- ベストアンサー
- オフィス系ソフト
- エクセルが上書きできません。読み取り専用?
エクセルで作成した計算書を使っています。 金額等を入力して保存したデータを再度開いて上書きしようとすると、「読み取り専用」になって上書きができません。 プロパティの読み取り専用にはチェックは入っていませんし、シートの保護などもしてないです。 この計算書を作成した人はすでに退職していて、他にエクセルに詳しい人がいないので困っています。 どのような事が考えられるでしょうか?計算書にはマクロが使われています。 宜しくお願いします。
- ベストアンサー
- オフィス系ソフト
- Excel 上書きは可能、新規保存は不可能にしたい
共有フォルダにあるファイルに複数人でアクセスできるようになっています。それぞれが入力して上書き保存できるようにしていますが、勝手に名前を付けて保存されてしまい困っています。上書き保存はできるけど、新規保存はできないようにマクロを組みたいと考えていますが、どのようにすればいいのでしょうか?教えてください。
- 締切済み
- Excel(エクセル)
- [ファイルの上書きの確認]ダイアログを自前で表示したい
開発環境はC#、.NET Framework2.0です 複数の巨大な圧縮ファイルを作成する処理を作成しています。 保存フォルダの指定はFolderBrowserDialogを使用し、ファイル名は作成するデータから自動生成しています。 但しファイル名にはタイムスタンプ等、重複を避けるようなものは付加しませんので、保存フォルダ次第でファイルの上書きが発生します。 また作成するファイル自体も容量が多いため、作成に時間がかかります。 そこでファイルを作成する前に添付した画像のようなダイアログを出して、 ファイルの作成・上書き保存を判断させたいと思っているのですが、 MessageBoxには[すべて上書き]ボタンが無く使えませんでした。 添付のような[ファイルの上書きの確認]ダイアログを使用したいのですが、どうしたらいいでしょうか? アイコンやファイルの詳細は表示されなくても結構です。ボタンが4つ表示出来るダイアログさえあれば問題ありません。 自分でこのような形のフォームを作成するしかないのでしょうか?
- ベストアンサー
- C・C++・C#