質問: エクセルメッセージの分岐処理を教えてください! よろしくお願いいたします! セルbc12:bc24に文字があればメッセージを表示するようにしましたが、 「再試行」ボタン押下で、何もしないでシートに戻る。(既入力データはそのまま) 「キャンセル」ボタン押下で、保存しないでブックを閉じる。(当然、既入力データはおじゃん) ・・・としたいのですが下記記述は中途半端だと思います。 どうかお手助けいただきたく存じます。 ーーーーーーーーーーーーーーーーーー private sub workbook_beforeclose(cancel as boolean) if worksheetfunction.counta(worksheets("sheet1").range("bc12:bc24")) > 0 then msgbox "時刻を入力ください!",vbcritical+vbcritical, "入力チェック" end if activeworkbook.close savechanges:=false end sub
回答: こんばんは! 横からお邪魔します。 実はこちらに投稿しようとしたコードをまったく関係ない質問者さんの方に投稿していました。 private sub workbook_beforeclose(cancel as boolean) with thisworkbook.worksheets("sheet1") if worksheetfunction.counta(.range("bc12:bc24")) > 0 then if msgbox("時刻が未入力です。" & vbcrlf & "セルを選択しますか?", vbyesno) = vbyes then .range("bc1").select '//←とりあえずbc1セルを時間入力セルとしている★// cancel = true else application.displayalerts = false thisworkbook.close savechanges:=false application.displayalerts = true end if end if end with end sub ※ とりあえず、メッセージボックスで「はい」を選択した場合に 「時刻入力セル」←bc1セルとしています を選択するようにしています。 お望み通りの動きにならなかったらごめんなさい。m(_ _)m