Wpis z mikrobloga

Pytanie do VBA i Excela. Czy jest jakaś możliwość, żeby przechwycić wartość/flagę przycisku Anuluj, gdy w momencie zamykania arkusza otwiera mi się okno "Czy chcesz zapisać arkusz...." Tak, Nie, Anuluj i wybiorę przycisk Anuluj?

#programowanie #vba #excel
  • 13
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@UlfNitjsefni: korzystając z powyższego obejścia, możesz

a) napisać obsługę zdarzenia before_close skoroszytu

b) wyłączyć domyślne okno dialogowe "czy chcesz zapisać..." za pomocą Application.DisplayAlerts =
  • Odpowiedz
@UlfNitjsefni: padło pytanie, co można zrobić w VBA. Żeby VBA zadziałało, to albo musi być zaszyte w skoroszyt, albo musi być dodany add-in, który to zrobi z każdym skoroszytem. Zatem jak chcesz przechwytywać okno domyślne bez VBA, to już bardziej chodzi o jakiegoś trojana uruchamienego z pominięciem Excela:)
  • Odpowiedz
@brak_nicku: chodzi mi jedynie o przycisk Anuluj, wtedy VBA 'ożywa', pytanie czy jest jakiś Event to obsługujący, bądź czy mogę dostać informację zwrotną, że np. przycisk Anuluj spowodował zmianę flagi zamykania excela na False, lub hipotetyczny przycisk ButtonCancel... = false.
  • Odpowiedz
@UlfNitjsefni: before_close odpala się zanim pojawi się okno potwierdzenia. Pozwala je wyłączyć i zastąpić oknem, które można dowolnie obsłużyć - czyli można pozostawić każde standardowe zachowanie excela a dodatkowo wiedzieć, kiedy został naciśnięty przycisk Anuluj. O to od początku pytałeś, tak można to zrobić, więc albo określ czemu to rozwiązanie jest złe, albo pozostańmy przy "ale ja chcę inaczej"
  • Odpowiedz
@brak_nicku: ostatecznie tak właśnie zrobiłem. Nie mówię, że ono jest złe, chciałem się dowiedzieć jaki jest sposób na przechwycenie przycisku Anuluj z 'domyślnego' okna zrobionego przez Excela, a nie przeze mnie.
  • Odpowiedz