dポイントプレゼントキャンペーン実施中!

EXCELのマクロである処理をするプログラムを作っています。

その中でVBAでListBoxに項目を動的に追加しています。

ListBoxに項目を追加すると終了時、
「ListBox.xlsへの変更を保存しますか?」の確認ダイアログが出ています。

このメッセージを出したくないのですがどうしたらよいですか?

以下がそのソースです。
'------------------------------------------------------
Option Explicit

'ListBox1に項目を追加
Private Sub CommandButton1_Click()
ListBox1.AddItem ("りんご")
ListBox1.AddItem ("みかん")
ThisWorkbook.Saved = True
End Sub

'保存済みの確認
Private Sub CommandButton2_Click()
MsgBox ThisWorkbook.Saved
End Sub

'セルを変更しても保存済みにする
Private Sub Worksheet_Change(ByVal Target As Range)
ThisWorkbook.Saved = True
End Sub
'---------------------------------------------------------
セルの変更はWorksheet_Changeイベントで
 ThisWorkbook.Saved = True
で確認ダイアログが出ないようにしています。

よろしくお願いします。

A 回答 (1件)

こんばんは



ThisWorkbookに

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub

を設置してみてください。

ただし、未保存のデータのチェックが効かなくなりますので、
保存が必要な変更があった場合には
ThisWorkbook.Save
で、保存するようにしておくことをおすすめします。

この回答への補足

Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Saved = True
End Sub
を追加したところ。

うまくいきませんでした。

ListBox1にAddItemしたときは別のフラグがたつようです?

ただ、この方法を追加すれば
セルの値の変更の対応を各シートに書かなくてよいので
利用させてもらいます。

補足日時:2011/12/16 09:25
    • good
    • 0

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