MS Word 365 - VBA i pole TextBox - błąd w programie?

Anonimowe
2022-07-14T10:09:07+00:00

Witam Wszystkich

Napotkałem pewien problem w MS Word 365 i zastanawiam się, czy nie jest to jakiś błąd w programie.

Otóż mam plik test.dotm, w którym zapisane jest makro VBA wstawiające treść z pliku. Wstawiany plik zawiera pole TextBox. Makro uruchamiane jest z przycisku CommandButton.

Selection.EndKey Unit:=wdStory

 Selection.InsertFile FileName:=Sciezka & "\Uwagi.docx", Range:="", \_  

     ConfirmConversions:=False, Link:=False, Attachment:=False 

Jeśli uruchomię szablon test.dotm, makro wstawia mi treść z pliku bez problemu, tylko jeśli próbuję odpalić ponownie makro z przycisku, ono się nie uruchamia. Jeśli nowoutworzony plik zapiszę, zamknę i uruchomię ponownie, makro działa. Ewentualnie jeśli wejdę w edytor VBA i użyję przycisku ,,stop'' (reset), makro wraca do życia.

Żeby było ciekawiej jeśli usunę z wstawianego pliku pole TextBox i uruchomię makro, wtedy odpala się każdorazowo kiedy użyję przycisku CommandButton. Żeby było jeszcze ciekawiej, to dodam, że jeśli ręcznie wstawię plik zawierający pole TextBox, makro przestaje działać. Nawet jeśli przeniosę dane na zasadzie kopiuj-wklej, również makro przestaje działać.

Może ktoś się już spotkał z takim zjawiskiem i wie jak to ominąć?

Pozdrawiam

Microsoft 365 i pakiet Office | Word | Do użytku domowego | Windows

Pytanie zablokowane. To pytanie zostało zmigrowane ze społeczności pomocy technicznej firmy Microsoft. Możesz zagłosować, czy pytanie jest pomocne, ale nie możesz dodawać komentarzy ani odpowiedzi, ani też śledzić pytania.

Komentarze: 0 Brak komentarzy

Odpowiedzi: 20

Sortuj według: Najbardziej pomocne
  1. Anonimowe
    2022-07-20T08:29:10+00:00

    Dziękuję za wszelkie cenne uwagi.

    K woli formalności dodałem film bez obcięć. Na tym filmie głównym aktorem jest Office 2010. W poprzednich był Office 365, ale efekt zostaje taki sam.

    Film Nr 4.

    Przy okazji tych dywagacji, zainteresowała mnie funkcja w Ms Word - ,,Szablon dokumentu'', którą chciałbym zgłębić.

    Moją ideą jest stworzenie szablonu w Ms Word .dotm, w którym na podstawie UserForma będzie można dokonać wyboru, jakie tabele mają być wstawione do nowego dokumentu. Takich tabel mam 12. Szablon wrzucam w sieć i na jego podstawie każdy użytkownik tworzy sobie dokument wedle własnych potrzeb. Dobrym dodatkiem byłoby, żeby w nowoutworzonym dokumencie też działał kod. Niby wszystko działa, ale pojawiają się jakieś niuanse, niedogodności.

    Jeszcze raz dziękuję za wszelkie uwagi, podpowiedzi i pomoc.

    Serdecznie pozdrawiam

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  2. Oskar Shon 49,336 Punkty reputacji Moderator wolontariuszy
    2022-07-19T13:24:25+00:00

    Jest faktycznie trochę nagranie obcięte, ale w niczym to nie przeszkadza.

    No przeszkadza, akurat stwierdzić moment utworzenia "Dokument1", który do po pierwszym uruchomieniu kodu szablonu jest realizowany, a który potem nie pozwala uruchomić ponownie kodu który już w tym pliku się nie zawiera. Dziwne jest ze wycinasz jeną linijkę z tabelki i już takie działanie nie jest realizowane :) czyli tworzenie nowego pliku Worda, który zawsze powinien powstawać.

    Ale jak napisałem weź to olej i wrzuć cała tabelkę przez jej skopiowane do szybkich części i wywołuj w dowolnym momencie,

    Obraz

    albo napisz profesjonalny dodatek do Worda który taką będzie zawierał lub ją budował.

    Zawsze możesz upierać się że jednak chcesz dalej to ciągnąć więc wywołanie kodu bez przycisku to Alt+F8, albo podłączenie do menu w postaci przycisku. Tu jednak zaczynają się schody bo z normal.dota wykonasz to np w menu szybki dostęp, ale z szablonu będzie gorzej bo trzeba by do niego dodać instrukcje XMLowe które tworzą przycisk.

    Zapewne robisz akcję jaką MS nie przewidział i jakoś mu się zgapiało, ale to nie jest problem jak swoją drogą przygotujesz szablon z treścią, a swoją droga będziesz wywoływał dowolną treść, tekst, ramkę czy co tam chcesz z aplikacji lub kodem z dodatku. Przykładem takiego dodatku jest np takie rozwiązanie: http://vbatools.pl/wybierz-tekst-do-dokumentu/, które akurat działa dla tekstu albo kodu HTML, który może zawierać instrukcje ramki, kolorów czcionki czy co tam wybrane po krótkiej frazie.

    Obraz

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  3. Anonimowe
    2022-07-19T12:54:29+00:00

    Jest faktycznie trochę nagranie obcięte, ale w niczym to nie przeszkadza. Aplikacja to Ms Word 365 (jak w tytule postu). Szablon stworzyłem po to, żeby był nienaruszalny, natomiast pliki powstałe na bazie tego szablonu miały być dowoli modyfikowane. Faktycznie w nowo tworzonym pliku nie ma kodu, lecz wydaje mi się, że jednak plik ma odwołanie do kodu, który jest w szablonie. Sam fakt, że makro działa, chyba o tym świadczy.

    Na filmie chciałem pokazać pewną prawidłowość. Problem pojawia się, kiedy w wstawianym pliku znajdują się pola TextBox. Jeżeli ich tam nie ma, makro wykonuje się za każdym razem, kiedy je uruchomię z przycisku.

    Zauważyłem jeszcze inną prawidłowość, z użyciem Userforma. Otóż kiedy umieszczę przycisk uruchamiający wstawianie pliku na Userformie, działa ono bez zastrzeżeń nawet z polami TextBox, do czasu zamknięcia Userforma. Później pojawia się problem z uruchomieniem Userorma. Czy można go w inny sposób uruchomić - nie z CommandButton???

    Film Nr 3. - UserForm

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  4. Oskar Shon 49,336 Punkty reputacji Moderator wolontariuszy
    2022-07-19T11:21:22+00:00

    Twoje nagrania nie pokazują nagłówka aplikacji (jakoś ta nagrywakra to ucina) a zobaczył być ze w momencie braku możliwości wywołania marka poprzednie działanie tworzy "Dokument1" który nie zawiera już kodu, a który jest podobizną szablonu. To jest powód twojej rozterki.

    Dlaczego jednak czasami go nie tworzy i dalej pracuje na szablonie... tego wytłumaczyć nie potrafię, ale zwykle szablon tworzy się po to aby powstał nowy bliźniaczy plik.

    Pozdrawiam.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  5. Anonimowe
    2022-07-19T11:03:03+00:00

    Dzięki za odpowiedź.

    Każda sugestia jest ważna, bo czegoś nowego można się dowiedzieć. Nigdy nie używałem ,,szybkich części'' i jeszcze nie wiem z czym się to je.

    Mam wrażenie, że trochę niezrozumiale opisałem problem. W związku z tym, przygotowałem dwa filmiki, które mam nadzieję wszystko wyjaśnią.

    Film Nr 1.

    Film Nr 2.

    Pozdrawiam serdecznie

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy