Excel VBA質問箱 IV

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

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


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

【24090】保存について cross 05/4/12(火) 11:47 質問[未読]
【24091】Re:保存について ウッシ 05/4/12(火) 11:51 回答[未読]
【24100】Re:保存について cross 05/4/12(火) 13:09 質問[未読]
【24103】Re:保存について ウッシ 05/4/12(火) 13:20 回答[未読]
【24130】Re:保存について cross 05/4/12(火) 20:20 お礼[未読]

【24090】保存について
質問  cross  - 05/4/12(火) 11:47 -

引用なし
パスワード
   始めまして。
最近VBAに興味が有り色々と勉強しています。

早速ですが質問させていただきます。

ブックを閉じる直前にメッセージボックスにてはいorいいえを問い合わせ、
はいの時の処理としてはアクティブシートの保護、ブックに名前を付けて保存⇒終了
と言う処理は出来たのですが、いいえを選んだときの処理としてVBAの処理を
止めたい(ブックを閉じる処理を中止したい)のですがどの様にしたら処理を
キャンセルできるのでしょうか?

是非是非御教授御願いします。

【24091】Re:保存について
回答  ウッシ  - 05/4/12(火) 11:51 -

引用なし
パスワード
   ▼cross さん:
>始めまして。
>最近VBAに興味が有り色々と勉強しています。
>
>早速ですが質問させていただきます。
>
>ブックを閉じる直前にメッセージボックスにてはいorいいえを問い合わせ、
>はいの時の処理としてはアクティブシートの保護、ブックに名前を付けて保存⇒終了
>と言う処理は出来たのですが、いいえを選んだときの処理としてVBAの処理を
>止めたい(ブックを閉じる処理を中止したい)のですがどの様にしたら処理を
>キャンセルできるのでしょうか?
>
>是非是非御教授御願いします。

こんにちは

メッセージは「Private Sub Workbook_BeforeClose(Cancel As Boolean)」の中で
だしているのですよね?

>いいえを選んだとき
Cancel = True
としてみて下さい。

【24100】Re:保存について
質問  cross  - 05/4/12(火) 13:09 -

引用なし
パスワード
   >こんにちは
>
>メッセージは「Private Sub Workbook_BeforeClose(Cancel As Boolean)」の中で
>だしているのですよね?
>
>>いいえを選んだとき
>Cancel = True
>としてみて下さい。

ウッシさん

早速ご回答有難う御座います。
やってみましたが、どうも上手くいきません。
先ほどの内容にて書き忘れましたが今の所VBAは
下記の様に作っています。
---------------------------------------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

maisuu = Worksheets.Count
If maisuu >= 3 Then
  MsgBox "終了するとシートは保護され変更が出来ません。", vbOKCancel

  If vbOK Then
    
    'シートの保護をします。
    Sheets(maisuu).Select
    ActiveSheet.Protect password:="hogo"
    ActiveWorkbook.Save
  Else
    
  End If
  
End If
      
End Sub
----------------------------------------------------------------------
この場合にワークブックを閉じる処理を止める場合には
どうすればよいのでしょうか?
それとも、ここでIF THEN ELSEを使うこと自体余りよくないのでしょうか?
お手数ですけど宜しく御願いします。

【24103】Re:保存について
回答  ウッシ  - 05/4/12(火) 13:20 -

引用なし
パスワード
   こんにちは

こういう事でしょうか?

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim maisuu As Long
  maisuu = Worksheets.Count
  If maisuu >= 3 Then
    If MsgBox("終了するとシートは保護され変更が出来ません。", vbOKCancel) _
      = vbOK Then
      'シートの保護をします。
      Sheets(maisuu).Select
      ActiveSheet.Protect password:="hogo"
      ActiveWorkbook.Save
    Else
      Cancel = True
    End If
  End If
End Sub

【24130】Re:保存について
お礼  cross  - 05/4/12(火) 20:20 -

引用なし
パスワード
   ▼ウッシ さん:

有難う御座います。
無事に出来ました。
まだまだ勉強しますのでわからない所がありましたら宜しく御願いします。

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