piątek, 19 września 2014

Usuwanie stron w MS Word z pomocą VBA 2/2

Kontynuując poprzedni wpis dot. stron dokumentu warto dodać, że istnieje jeszcze jeden ze sposobów odnajdywania strony dokumentu- przez wykorzystanie zakładki "\page". Poniższe odwołanie spowoduje, że zaznaczony zostanie obszar strony na której znajduje się bieżące zaznaczenie:


a stąd już blisko do usunięcia całej strony przez minimalna modyfikację powyższego kodu:


Jak widać wykorzystanie obiektu Bookmarks("\page") domyślnie weryfikuje układ dokumentu przez pryzmat widoku o czym pisałem w poprzednim wpisie.

Przy okazji warto zwrócić uwagę na zakładki specjalne występujące w dokumencie gdyż często okazują się być niezmiernie przydatne. Określane są one mianem zakładek predefiniowanych i pozwalają m.in. na:
  • odnalezienie początku dokumentu \StartOfDoc
  • odnalezienie końca dokumentu \EndOfDoc
  • odnalezienie początku lub końca bieżącego zaznaczenia : \StartOfSel, \EndOfSel
itp. Kompletną listę znaleźć można pod tym linkiem.

Przy okazji serdecznie zapraszam na jesienne szkolenia z VBA dla aplikacji Excel. Nasze kursy organizowane są w Warszawie, Krakowie i Wrocławiu na różnych poziomach zaawansowania.  Szczegółowe informacje na naszej stronie www.SzkoleniaVBA.pl.

poniedziałek, 15 września 2014

Usuwanie stron w MS Word z pomocą VBA 1/2

Każdy kto kiedykolwiek miał styczność z VBA dla Worda ma świadomość, że nie istnieje jednoznacznie definiowany obiekt odpowiadający stronie dokumentu. Od razu wyjaśnię dlaczego tak jest dla tych osób, które są zaskoczone tym faktem- dokument traktowany jest bowiem jako ciąg tekstu o zdefiniowanych początku i końcu. Trudno na etapie obiektowej analizy zawartości dokumentu (sprawdzając ilość słów, paragrafów czy zdań)  jednoznacznie określić ile on zajmie stron skoro użytkownik ostatecznie będzie mógł zastosować czcionkę różnej wielkości, zastosuje inny format papieru, itp., a przez to wpłynie na różną ilość stron dokumentu.

Nie jest jednak tak źle- pojecie strony pojawia się wtedy, gdy zaczynamy się odwoływać do dokumentu przez pryzmat bieżącego widoku. I tak na przykład aby sprawdzić ilość stron dokumentu możemy zastosować następujące zapytanie:


W powyższym przykładzie jesteśmy w stanie odnaleźć kolekcję Pages odpowiadającą stronie dokumentu. Ale kolekcja ta pojawia się jako element widoku, który reprezentowany jest przez obiekt okna Window (ActiveWindow).

Powyższy sposób nie jest jedynym na określenie ilości stron dokumentu. O wiele bardziej popularny sposób to odwołanie się do właściwości .Information obiektu Range, która zwraca szereg informacji dot. pliku Word:


W kolejnym wpisie zaprezentuję jeszcze jeden sposób odnajdywania strony, a technikę tą zaprezentuję w kontekście usuwania całej strony pliku.