Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8376 / 13646 ツリー ←次へ | 前へ→

【33582】WorkBookを閉じる時に表示されるメッセージを制御したい mono 06/1/16(月) 10:57 質問[未読]
【33584】Re:WorkBookを閉じる時に表示されるメッセ... MARBIN 06/1/16(月) 11:22 回答[未読]
【33586】Re:WorkBookを閉じる時に表示されるメッセ... mono 06/1/16(月) 11:53 お礼[未読]
【33651】Re:WorkBookを閉じる時に表示されるメッ... ちー 06/1/17(火) 15:50 質問[未読]
【33654】Re:WorkBookを閉じる時に表示されるメッ... Jaka 06/1/17(火) 16:37 発言[未読]
【33687】Re:WorkBookを閉じる時に表示されるメッ... ちー 06/1/18(水) 12:11 発言[未読]
【33688】Re:WorkBookを閉じる時に表示されるメッ... Jaka 06/1/18(水) 13:11 発言[未読]
【33693】Re:WorkBookを閉じる時に表示されるメッ... ちー 06/1/18(水) 14:04 発言[未読]
【33696】Re:WorkBookを閉じる時に表示されるメッ... Jaka 06/1/18(水) 14:27 回答[未読]
【33699】Re:WorkBookを閉じる時に表示されるメッ... ちー 06/1/18(水) 15:19 お礼[未読]

【33582】WorkBookを閉じる時に表示されるメッセー...
質問  mono  - 06/1/16(月) 10:57 -

引用なし
パスワード
   よろしくお願いします。

エクセルを使って、ADO接続したり、シートに何やかんやデータを書き込むような処理をしています。
そして処理を終えた後、WorkBookを閉じようとすると
「変更された内容を保存しますか?」
というダイアログが表示され、入力が要求されます。
WorkBooを読み取り専用にしても、結局はダイアログが表示されてしまうので
都合が悪いです。

このダイアログを制御する方法を探しているのですが、
何か良い方法はないでしょうか。

【33584】Re:WorkBookを閉じる時に表示されるメッ...
回答  MARBIN  - 06/1/16(月) 11:22 -

引用なし
パスワード
   Thisworkbookモジュールに、

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Thisworkbook.saved =true
End Sub

を記述してはいかがでしょう?

【33586】Re:WorkBookを閉じる時に表示されるメッ...
お礼  mono  - 06/1/16(月) 11:53 -

引用なし
パスワード
   ▼MARBIN さん:
>Thisworkbookモジュールに、
>
>Private Sub Workbook_BeforeClose(Cancel As Boolean)
> Thisworkbook.saved =true
>End Sub
>
>を記述してはいかがでしょう?

お返事ありがとうございます。
今試してみたところ、希望通りの処理を実装することができました。
(ためしに
 Thisworkbook.saved =False
としてみたところ、ダイアログは表示されますね。)

この方法でやらせていただきます。
ありがとうございました。

【33651】Re:WorkBookを閉じる時に表示されるメッ...
質問  ちー  - 06/1/17(火) 15:50 -

引用なし
パスワード
   ▼MARBIN さん:

横から失礼します。
読み取り専用で開いた時にメッセージが出ないのはとても助かります。
ですが、データを変更した時にはメッージが欲しいので、どうすれば良いのでしょうか?
よろしくお願いします。

【33654】Re:WorkBookを閉じる時に表示されるメッ...
発言  Jaka  - 06/1/17(火) 16:37 -

引用なし
パスワード
   >読み取り専用で開いた時にメッセージが出ないのはとても助かります。
>ですが、データを変更した時にはメッージが欲しいので、どうすれば良いのでしょうか?
どっちにしろメッセージが必要なら、何も細工しなければ良いと思います。
(最終的にどうしたいのか良く解ってませんけど....。)

【33687】Re:WorkBookを閉じる時に表示されるメッ...
発言  ちー  - 06/1/18(水) 12:11 -

引用なし
パスワード
   ▼Jaka さん:
OFFSET関数を使うと、データを編集していなくても終了時に「変更を保存しますか?」と聞いてきます。

編集をしていない、又は読み取り専用で開いた場合に、このメッセージを出ないようにしたいのです。

編集した時には、間違えて終了しない為にメッセージがあれば良いかなと・・・

【33688】Re:WorkBookを閉じる時に表示されるメッ...
発言  Jaka  - 06/1/18(水) 13:11 -

引用なし
パスワード
   Offset関数だけじゃないけど、関数によるデータの更新と編集の違いの差はどこで判断するのでしょうか。
単に書き込みだけだったら、
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Excel.Range)
で、どこかのセルにでもフラグを立てておいて、フラグがたっていたなら保存した事にしない、フラグがたっていなかったら保存した事にする。(.Saved = True)
にするとか...。

セルにフラグを立てる = データ変更
となるので、この辺をうまく処理しないとダメですけど...。
セルに書き込みたくなかったら、ツールバーを添付して、それを変数の代わりに使ったりも出来ます。
読み込み専用で開くファイルをどうやって使うのかで、処理内容も変わると思います。

【33693】Re:WorkBookを閉じる時に表示されるメッ...
発言  ちー  - 06/1/18(水) 14:04 -

引用なし
パスワード
   ▼Jaka さん:
説明不足で何度も申し訳ありません^_^;

私がデータを追加し、他の方が「読み取り専用」で閲覧しています。
「読み取り」の場合、保存の必要はないのですんなり終了して欲しいのです。

【データを変更した時だけメッセージを出す】というのがややこしければ、
【「書込用」で開いた時だけメッセージを出す】はできますか?
逆にいえば【「読取専用で開いたらメッセージは出さない】

【33696】Re:WorkBookを閉じる時に表示されるメッ...
回答  Jaka  - 06/1/18(水) 14:27 -

引用なし
パスワード
   ▼ちー さん:
>逆にいえば【「読取専用で開いたらメッセージは出さない】
これで良いんじゃないかと思います。

読取専用で開くかもしれないブックのThisworkBookに
(でもマクロを無効にされたら、どうしましょうか?)

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

【33699】Re:WorkBookを閉じる時に表示されるメッ...
お礼  ちー  - 06/1/18(水) 15:19 -

引用なし
パスワード
   ▼Jaka さん:
一番の問題を忘れていました。
閲覧する方々は多分マクロを使ったことが無い!(>_<)
せっかく教えて頂いたのにすみません。

今回のファイルでは駄目でしたが、他で役立つと思います。
どうもありがとうございました<m(__)m>

8376 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free