Excel VBA質問箱 IV

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

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


2798 / 13644 ツリー ←次へ | 前へ→

【65898】上書保存ボタンを押した直後、閉じるボタンwo あや 10/7/6(火) 12:39 質問[未読]
【65899】Re:上書保存ボタンを押した直後、閉じるボ... Jaka 10/7/6(火) 13:04 発言[未読]
【65905】Re:上書保存ボタンを押した直後、閉じるボ... Jaka 10/7/6(火) 14:28 発言[未読]
【65923】Re:上書保存ボタンを押した直後、閉じるボ... あや 10/7/8(木) 10:46 お礼[未読]

【65898】上書保存ボタンを押した直後、閉じるボタ...
質問  あや  - 10/7/6(火) 12:39 -

引用なし
パスワード
   ファイルを閉じるタイミングで、必要の無いシートの削除をしています。
上書保存ボタンからの保存の場合は、シート削除をしたくないので
F閉ボタンのフラグで判断するようにしました。

Private Sub Workbook_BeforeClose(Cancel As Boolean)

 F閉ボタン=TRUE

End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

  If F閉ボタン = "TRUE" Then
    F閉ボタン = ""
    
    シート削除作業
    
  End If

End Sub

ここで問題が…

上書保存ボタンを押した直後、閉じるボタンを押した場合
(ファイルに変更がないため)BeforeSaveに入らず、シートが削除されずに
ファイルが閉じてしまいます。

どのようにしたらよいでしょうか。

【65899】Re:上書保存ボタンを押した直後、閉じる...
発言  Jaka  - 10/7/6(火) 13:04 -

引用なし
パスワード
   Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If SaveAsUI = True Then
  MsgBox "名前をつけて保存。"
Else
  MsgBox "上書き"
End If
End Sub

尚、保存してない新しいブックの場合は、上書きを選んでも、
上書きが出来ないので、当然名前をつけて保存になります。

【65905】Re:上書保存ボタンを押した直後、閉じる...
発言  Jaka  - 10/7/6(火) 14:28 -

引用なし
パスワード
   あ、別に勘違いしているわけでもなかったので、勘違いと思ったスレは消しました。

>Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
>If SaveAsUI = True Then
>  MsgBox "名前をつけて保存。"
>Else
>  MsgBox "上書き"

  ここで、シート削除作業 をしておけば良いかも。
  また、マクロでセーブした場合は、
  Workbook_BeforeSave が、ろくに動かない可能性もあるのでチェックしておく事。

>End If
>End Sub

【65923】Re:上書保存ボタンを押した直後、閉じる...
お礼  あや  - 10/7/8(木) 10:46 -

引用なし
パスワード
   Jakaさん書き込みありがとうございます。

SaveAsUIの使い方を知りました…
勉強になります。


閉じるときと保存の後の詳しい動きがわかっていないのもあって
こうしたらできるのかなぁと試しながら作っていて
作ってからこれじゃここが駄目なんやとかやっとわかって
いきあたりばったりの質問になってしまって、すいません。

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