Błąd "przepełnienie stosu w wierszu 68" w Microsoft Word
Pytanie
Podczas pracy programu word występuje błąd "przepełnienie stosu w wierszu 68"
Odpowiedź Sztucznej Inteligencji
Bezpośrednia odpowiedź na pytanie
- Komunikat „przepełnienie stosu w wierszu 68” najczęściej oznacza błąd w makrze VBA (rekurencja, pętla zdarzeń) albo problem z dodatkiem/komponentem HTML używanym przez Worda.
- Zacznij od uruchomienia Worda w trybie awaryjnym (winword /safe), wyłączenia dodatków i sprawdzenia makr w edytorze VBA na linii 68. W dokumentach z makrami przeanalizuj obsługę zdarzeń pod kątem zapętlenia.
Szczegółowa analiza problemu
- Co oznacza błąd: „stos” to pamięć używana do przechowywania kontekstu wywołań. Gdy procedury wywołują się w nieskończoność (bez warunku wyjścia) lub zdarzenie uruchamia samo siebie (re‑entrancy), stos się zapełnia i pojawia się błąd.
- „Wiersz 68”:
- Jeśli komunikat pojawia się jako okno VBA z przyciskiem „Debuguj” – chodzi o realną linię w module VBA.
- Jeśli to mały komunikat „Przepełnienie stosu w wierszu: 68” bez przejścia do edytora – zwykle pochodzi z silnika skryptów/HTML (MSHTML/IE) wywołanego przez dodatek lub panel (np. okno zadań, usługi online). Wtedy często pomaga wyłączenie dodatków/połączenia sieciowego lub funkcji „connected experiences”.
Najczęstsze przyczyny:
- Bezpośrednia lub pośrednia rekurencja w VBA:
- A wywołuje A (bez warunku zakończenia) lub A→B→A.
- Pętla zdarzeń w dokumencie/szablonie:
- Zdarzenie modyfikuje dokument, co ponownie wywołuje to samo zdarzenie.
- Dodatek COM/VSTO lub szablon globalny (Normal.dotm) wywołuje skrypty/HTML powodujące błąd stosu.
- Uszkodzony szablon Normal.dotm / dokument, rzadziej: instalacja Office.
Aktualne informacje i trendy
- Zgłaszano przypadki w Word 2016/2019, gdzie identyczny komunikat ustępował po odłączeniu komputera od sieci lub po wyłączeniu podejrzanego dodatku/okna zadań korzystającego z zawartości sieciowej. To wskazuje na źródło w komponencie HTML/dodatku, a nie w klasycznym VBA.
- Dobre praktyki w 2020+ dla zdarzeń w Word VBA: zamiast „wyłączania zdarzeń” (Word nie ma Application.EnableEvents jak Excel) stosuje się bezpieczne „strażniki” (guard flags) i klasę z WithEvents.
Wspierające wyjaśnienia i detale
Aspekty etyczne i prawne
- Bezpieczeństwo makr: nie włączaj makr z dokumentów od nieznanych nadawców. Makra mogą wykonywać dowolny kod, w tym szkodliwy.
- Polityka IT: w środowisku firmowym zmiany dodatków/ustawień mogą podlegać politykom MDM/Group Policy – konsultuj z IT.
- Prywatność: „connected experiences” w Office wysyłają dane diagnostyczne/treści do chmury; upewnij się, że jest to zgodne z polityką organizacji.
Praktyczne wskazówki
- Szybka izolacja:
- Win+R → winword /safe → sprawdź, czy błąd znika.
- Odłącz sieć (Ethernet/Wi‑Fi) i sprawdź, czy komunikat nadal się pojawia.
- Dodatki:
- Plik → Opcje → Dodatki → Zarządzaj: Dodatki COM → Przejdź → odznacz wszystkie → uruchom Word. Włączaj pojedynczo.
- Makra:
- Plik → Opcje → Centrum zaufania → Ustawienia → Makra: tymczasowo Wyłącz wszystkie makra (zablokujesz kod).
- Jeśli to Twój dokument z kodem: Alt+F11, sprawdź moduł/linię 68, użyj Stosu wywołań, wstaw strażniki re‑entrancyjne jak wyżej.
- Szablony:
- Zamknij Word. %appdata%\Microsoft\Templates → zmień nazwę Normal.dotm na Normal.old → uruchom Word (utworzy czysty).
- Dokument:
- Plik → Otwórz → strzałka przy „Otwórz” → „Otwórz i napraw”.
- Skopiuj zawartość (bez ostatniego akapitu) do nowego .docx i sprawdź.
- Instalacja i profil:
- Office: Plik → Konto → Opcje aktualizacji → Aktualizuj teraz.
- Aplikacje i funkcje → Microsoft 365/Office → Modyfikuj → Szybka naprawa (a w razie potrzeby Pełna).
- Funkcje sieciowe Office:
- Plik → Opcje → Centrum zaufania → Ustawienia → Opcje prywatności/Doświadczenia połączone: tymczasowo wyłącz, sprawdź wpływ.
- Jeżeli błąd dotyczy tylko określonej czynności (np. otwarcie okna zadań, podgląd, wklejanie z sieci) – to cenna wskazówka, że winny jest określony dodatek lub komponent HTML.
Ewentualne zastrzeżenia lub uwagi dodatkowe
- Sam komunikat „wiersz 68” nie gwarantuje, że w Twoim module VBA dokładnie linia 68 jest winna – w przypadku błędów skryptów HTML to numer wewnątrz ładowanej strony/fragmentu skryptu.
- Czasem błąd ujawnia dopiero kombinacja dwóch dodatków – testuj je pojedynczo i parami.
- W makrach ostrożnie z DoEvents i Selection – mogą prowokować dodatkowe zdarzenia i re‑entrancyjność.
Sugestie dalszych badań
- Dokumentacja: „Out of stack space (Error 28)” w pomocy VBA; przegląd zdarzeń Word (Word VBA Reference).
- Praktyka: przykłady klas WithEvents w Word VBA, techniki anty‑reentrancyjne.
- Jeśli używasz dodatku firm trzecich: sprawdź dziennik zmian/FAQ producenta pod kątem znanych kolizji z bieżącymi aktualizacjami Office/Windows.
Krótkie podsumowanie
- Najpierw wyklucz dodatki i sieć (safe mode, offline). Jeśli błąd znika – problem jest poza VBA (dodatek/HTML).
- Jeśli pozostaje – przeanalizuj makra: rekurencja, pętla zdarzeń, brak „strażników”. Użyj Stosu wywołań i punktów przerwania.
- Zresetuj Normal.dotm, napraw Office, aktualizuj. To typowo usuwa 90% takich przypadków.
Jeśli chcesz, prześlij:
- Wersję Word/Office (np. Microsoft 365 z kanałem aktualizacji, Word 2019, itp.).
- Zrzut okna błędu (czy oferuje „Debuguj”?).
- Fragment kodu z okolic linii 68 oraz informację, jakie zdarzenie/akcja go wyzwala.
Na tej podstawie przygotuję precyzyjną poprawkę.
Zastrzeżenie: Odpowiedzi udzielone przez sztuczną inteligencję (model językowy) mogą być niedokładne i wprowadzające w błąd. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi powinny być zweryfikowane przez użytkownika.
Zadaj dodatkowe pytanie Sztucznej Inteligencji