Excelで保存する際のメッセージ表示を無効化する方法はありますか?
- 読み取り専用でエクセルファイルを閉じる際、保存するかどうかのメッセージを表示させずに閉じる方法を教えてください。
- 読み取り専用で開いているにもかかわらず、メッセージを無効化して閉じる方法として、Application.DisplayAlerts = Falseとする方法がありますが、これではメッセージが表示されます。
- 保存メッセージを出さずに閉じる方法として、ThisWorkbook.Saveとすればメッセージが表示されずに閉じることができますが、保存に時間がかかるため、別の方法を探しています。また、閉じた後に再度開くと変更部分は保存されていませんが、タイムスタンプは更新されています。これは通常の動作なのでしょうか?他に保存メッセージを無効化する方法はないでしょうか?
- ベストアンサー
エクセルで保存しますか?のメッセージを表示しない
皆さんこんにちは 教えてください、読み取り専用でエクセルファイルを開いて閉じるボタンを使って閉じるときに「保存しますか?」のメッセージを出さないで閉じたいのですが、Workbook_BeforeClose イベントに Application.DisplayAlerts = False としてもメッセージは表示されます 読み取り専用で開いているにもかかわらず Application.DisplayAlerts = False ThisWorkbook.Save Application.DisplayAlerts = True とすれば メッセージが表示されずに閉じますが 保存しますか?→いいえ として閉じるよりも時間がかかります 読み取り専用で開いているのに保存されるのでしょうか?同じファイルを再び開くと変更した部分は保存されていません しかし、タイムスタンプは閉じた時間に更新されています これは普通なのでしょうか? この方法以外で保存しますか?のメッセージを出さないで保存しないで閉じる方法はないでしょうか?よろしく御願いします
- YokoP
- お礼率80% (4/5)
- その他(プログラミング・開発)
- 回答数3
- ありがとう数5
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 閉じるボタン(×)で閉じてるということですので ------------------------------------------------------- Private Sub Workbook_BeforeClose(Cancel As Boolean) ThisWorkbook.Saved = True End Sub ------------------------------------------------------- で、どうでしょうか。 以上です。
その他の回答 (2)
- taocat
- ベストアンサー率61% (191/310)
再度の登場です。 >ThisWorkBookSaved=True は 実際は保存をしていないのにエクセル本体?に保存しましたよと知らせてるって感じで理解すれば良いですか? そういう理解でいいと思います。 詳しくはSavedプロパティのヘルプを覗いてみて下さい。 以上です。
お礼
了解しました ありがとうございました
- nicotinism
- ベストアンサー率70% (1019/1452)
ThisWorkbook.Close SaveChanges:=False だとどうですか?
お礼
こんにちは 回答ありがとうございます お礼が遅くなり済みませんでした Workbook_BeforeCloseイベントに ThisWorkbook.Close SaveChanges:=False とするとExcel本体の閉じるボタンをクリックしてもBookだけ閉じて 目的のBookだけしか開いていない場合でもExcelが閉じないで残ってしまいました 記述する場所が良くなかったでしょうか ともあれ、解決しましたので ありがとうございました。
関連するQ&A
- エクセル・ブック共有のファイル終了時に
エクセルのVBA、万年初心者のものです。m(__)m エクセルのファイルをネットワーク上で「ブックの共有」で使いたいと思っているのですが、「ブックの共有」をオンにしていると、終了時に毎回「この場所に○○.xlsという名前のファイルが既にあります。置き換えますか?」と出てきます。 ファイル自体はマクロを有効にしていて、毎回、置き換える必要がないので「いいえ」しか選ばないので、なんとか、このメッセージをださないようにしたいのですが。 ThisWorkbook のPrivate Sub Workbook_BeforeClose の中に、Application.DisplayAlerts = False を入れてみたりしましたが、うまくいきません。 なにかいいメソッドがないでしょうか?
- ベストアンサー
- オフィス系ソフト
- 読み取り専用ファイルを上書き保存するには?
作業中は常に読み取り専用状態にしておき、保存の時にだけ読み取り専用の属性を解除して 上書き保存し、上書き保存が終了次第、即座に読み取り専用状態に戻す運用を考えております。 (1)ThisWorkbookのOpenプロシージャでファイルを読み取り専用状態に設定 (2)ThisWorkbookのBeforeSaveプロシージャで 読み取り専用を解除→上書き保存→読み取り専用状態に再設定 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) '上書き保存モードを解除 Cancel = True '上書きしますか?のコメントを非表示に設定 ActiveWorkbook.Saved = True 'ファイルが読み取り専用であった場合は以下の処理を実行 If ActiveWorkbook.ReadOnly Then 'ブックの読み取り専用設定を解除 ActiveWorkbook.ChangeFileAccess Mode:=xlReadWrite, Notify:=True '上書き保存を実行 Application.DisplayAlerts = False Application.EnableEvents = False ActiveWorkbook.Save Application.EnableEvents = True Application.DisplayAlerts = True 'ブックを読み取り専用に設定 ActiveWorkbook.ChangeFileAccess Mode:=xlReadOnly 'ファイルが読み取り専用でなかった場合は以下の処理を実行 Else '上書き保存を実行 Application.DisplayAlerts = False Application.EnableEvents = False ActiveWorkbook.Save Application.EnableEvents = True Application.DisplayAlerts = True End If End Sub 上記のマクロで上手くいきそうなのですが、下記2点が解決できずに困っております。 (1)上書き保存ボタンをクリックすると下記のメッセージが毎回表示されてしまいます。 『読み取り専用です。コピーを保存するには名前を付けて保存して下さい。』 OKボタンをクリックしたりEscやEnterキーを押下さえすればこの警告メッセージを回避でき 以後は思った通りの処理を行えるのですが、できればこのメッセージを表示したくない。 (2)上書き保存のために読み取り専用を解除した際、他のオペレーターがエクセル起動中、 または上書き保存中であった場合、エラーが発生してしまうことと思われます。 この問題の解決策をご存知の方、是非教えて下さいますよう宜しくお願いします。 当初は共有ブックとしての運用の方向で進めていたのですが、既に2人のオペレーターが ファイルにアクセスしている状態で、3人目のオペレーターがファイルを開くと読み取り専用と なってしまったり、保存時に時間がかかり過ぎたり、保存時のエラーが頻繁に発生したりといった 状況でしたので共有ブックとしての運用は諦めました。(シート50枚、ファイルサイズ3.5MB程度) 使用PCはXPでExcel2003です。以上、宜しくお願いします。
- ベストアンサー
- Visual Basic
- エクセルVBAにて保存するとき
Private Sub Workbook_BeforeClose(Cancel As Boolean) If MsgBox("エクセルを終了してもよろしいですか?", vbYesNo) = vbNo Then Cancel = True Exit Sub End If Application.DisplayAlerts = False Application.Quit End Sub Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) MsgBox "そのボタンでは保存できません。" & vbCrLf & _ "雛形は残しておきましょう" & vbCrLf & _ "" & vbCrLf & _ "ツールバーの「マクロなし出力」から保存できます。" Cancel = True End Sub という二つのマクロをThisworkbookにいれてあるんですが、 この二つを有効(今は2つ目を'でコメント状態にしてあるので保存可)にすると保存できなくて困っています。 二つを有効にした時はどのようにほぞんすればいいですか?
- 締切済み
- Visual Basic
- Excel VBAでのSaveCopyAsの挙動
Excel 2016/2019を使っています。よろしくお願いします。 ブックに変更があった場合にバックアップを保存したいので、 上書きにならないように日付と連番をつけてバックアップ専用フォルダにSaveCopyAsを使って保存しようとしています。 明示的に「保存」アイコンをクリックすると期待通りの動作が行われます。しかし、保存せずに「x」印をクリックして閉じてしまった場合でも、変更があるならバックアップファイルを作りたいのですが、SaveCopyAsを通っているのにバックアップファイルが作成されません。 記載したコードは以下のとおりです。 ThisWorkbookオブジェクトに対して、 Public Sub Workbook_beforeClose(Cancel As Boolean) '変更があれば(ThisWorkBookを)保存 If ThisWorkBook.Saved = False Then ThisWorkBook.Save End If End Sub 'ThisWorkBookの保存時にバックアップを作成 Private Sub Workbook_BeforeSave(省略) If ThisWorkbook.Saved = False Then 'バックアップファイルのフルパスを作成 ThisWorkbook.SaveCopyAs "バックアップファイルフルパス" End Sub 何かヒントをお持ちの方みえられましたらご教示いただければ幸いです。
- ベストアンサー
- Excel(エクセル)
- EXCELブックを保存しないで終了
EXCEL2000で"A"というブックから"B"というブックを マクロのVBAから開きます。 両方のシートが開いた状態から,"B"のマクロより 両方のブック共に保存しないで、EXCEL自体終了するマクロ を"B"側に下のような感じで作成しました。 -------- EXCEL終了処理 ------------------ Application.DisplayAlerts = False ThisWorkbook.Saved = False Application.Quit ---------------------------------------- これで終了しようとすると、「"B"のブックを保存しますか?」というメッセージが表示されてしまいます。終了前のマクロ処理の中で"B"ブックを変更しているので、このようなメッセージが表示されると思うのですが、 Application.DisplayAlerts = False 命令は利かないのですか? どなたか教えて下さい。宜しくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセル/BeforeCloseイベントで保存できない!?
エクセル2000です。 以下の_BeforeCloseイベントのマクロ(非常に簡略化してますが)ですが、標準モジュールに設定した Sub 終了() ActiveWorkbook.Close End Sub から終了させた場合、ActiveWorkbook.Saveの部分だけが働かないようです。 エクセル画面右上の×で終了させた場合は保存されます。 どうしてでしょうか? Private Sub Workbook_BeforeClose(Cancel As Boolean) With Sheet1 If .Range("A1") <> .Range("B1") Then ret = MsgBox("変更を保存しますか?" _ + Chr(&HD) + Chr(&HA) + "" _ + Chr(&HD) + Chr(&HA) + "新:" & .Range("A1") _ + Chr(&HD) + Chr(&HA) + "旧:" & .Range("B1"), vbYesNo + vbQuestion, " 確認") If ret = vbYes Then ActiveWorkbook.Save '←なぜ保存されないの?! MsgBox "保存しました" ThisWorkbook.Saved = True ActiveWorkbook.Close (False) End If Else ThisWorkbook.Saved = True ActiveWorkbook.Close (False) End If End With End Sub
- ベストアンサー
- オフィス系ソフト
- VBAでの疑問
以下のようなコードを見ました。 Private Sub Workbook_BeforeClose(Cancel As Boolean) With ThisWorkbook Application.DisplayAlerts = False If .Name <> .FullName Then SaveAs Else Me.Saved = True End If Application.DisplayAlerts = True End With End Sub これは何のためのコードでしょうか? If .Name <> .FullName Then って、パスなしのBOOK名とパス付BOOK名が同じじゃないのは当然で、同じになるのは新規に作成したばかりで保存する前のファイルくらいしか思いつきません。これでは必ず上書きされてしまうと思いますが、どういう意図が考えられるのかお分かりの方教えていただけないでしょうか?
- ベストアンサー
- Excel(エクセル)
- エクセル マクロ 値の貼り付け
以下のエクセルのマクロで値のみを貼り付けたいのですが、.valueを指定しても上手くできません。 どのように修正すればいいか教えてください。 Dim wb As Workbook Application.ScreenUpdating = False Set wb = Workbooks.Open(Filename:=ThisWorkbook.Path & "\ファイルA.xls", UpdateLinks:=0) ThisWorkbook.Sheets("BBB").Range("E4:AR4").Copy wb.Sheets("BBB").Range("E4:AR4") Application.DisplayAlerts = False wb.Close (True) Application.DisplayAlerts = True Application.ScreenUpdating = True
- ベストアンサー
- オフィス系ソフト
- ExcelVBAで、クローズボタンの処理
お世話になります。 通常、アプリ側ではApplication.DisplayAlerts = Falseにして、 ブックの終了などを制御しているのですが、 Excelのクローズボタンを押して終了するときは、この DisplayAlertsが有効にならないらしく、必ず上書き確認の ダイアログが表示されてしまいます。 これを… 1.上書き保存ダイアログを表示させない(上書き自体させない) 2.Excel本体のクローズボタンを無効にする 3.Excel本体のクローズボタンを非表示にする …などのどれかの方法を教えてください。 尚、現在はブックを閉じる直前で、下記のようなコードで 試みていますが、うまくいきません。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.DisplayAlerts = False End Sub 以上、宜しくお願い致します。
- ベストアンサー
- Visual Basic
- マクロ実行後エクセルを閉じたい
2つの別々のファイルを開いて片方からもう片方にコピーして 保存して終了する。(両方とも閉じる) というマクロを作ったのですが コピー終了後に実行したマクロ付きのエクセルも閉じてデスクトップ上には何も開いていない状態にしたいのですがworkbookのところに 下記の命令を記述してもうまくいきません。 Application.Run "XXXXXX" ThisWorkbook.Save ThisWorkbook.Saved = True If Workbooks.Count <= 1 Then Application.Quit ThisWorkbook.Close False マクロ付きのエクセルも一旦は閉じるのですがその後に 別の白紙のブックが開いてしまうのです。 続けて他のマクロをスケジュールで実行したいのですが実行時に 「既にエクセルが開いています」みたいな警告が表示され 実行できません。 エクセルを完全に閉じるようにするにはどうしたらいいのでしょうか?
- ベストアンサー
- オフィス系ソフト
補足
こんにちは うまくメッセージが表示されないで閉じることが出来ましたありがとうございます ThisWorkBookSaved=True は 実際は保存をしていないのにエクセル本体?に保存しましたよと知らせてるって感じで理解すれば良いですか?