Stránka 2 z 2

Napsal: 16 kvě 2024, 15:37
od masar
Jinou možností je VBA skript, který přikládám (přejmenujte příponu na .bas).
Postup je celkem jednoduchý:
1. Umístěte všechny soubory .doc do jedné (libovolné) složky na disku.
2. Otevřete nový (prázdný) dokument Word
3. Otevřete okno VBA (Alt+F11) a v něm klikněte na "File/Import File..." a nahrejte modul Fonty.bas.
4. Otevřete modul a editujte v něm název fontu, na který si přejete změnit použité fonty v dokumentech.
5. Spusťte skript (F5)
Otevře se okno exploreru, ve kterém vyberete složku s dokumenty. Ve všech souborech bude provedena změna všech fontů na font určený ve skriptu. Fonty v automatických tvarech zůstanou nedotčeny. Mění se pouze fonty, nemění se jejich velikost a formátování.
Celý postup jsem nahrál na krátké video.

Napsal: 16 kvě 2024, 15:40
od DukeNuke
Podle krátkého shlédnutí to umí jen .doc. Pro .docx bys to musel upravit.
Použil jsi "On Error Resume Next" bez zachytávání chyby. V takovém případě je lépe nechat skript zhavarovat, než nechat běžet bez kontroly, zda proběhl v pořádku.

Napsal: 16 kvě 2024, 15:43
od masar
Umí to, kupodivu, i docx, navzdory syntaxi.
Skript je velmi jednoduchý a nikomu nebráním v jeho zdokonalení.
:wink:

Napsal: 16 kvě 2024, 15:47
od DukeNuke
masar píše:Umí to, kupodivu, i docx, navzdory syntaxi.
Inteligentní štajgr, to bych tedy netipl :-) Člověk se furt učí.

Napsal: 16 kvě 2024, 16:08
od EKKAR
DukeNuke píše:Není zač. A nejsem ajťák. Zajímám se o počítače ještě z dob, kdy se programovalo ve strojáku a skriptovací jazyk VisualBasicScript je tu od Win98. Nepotřeboval jsem to k práci, jen mě baví zkoušet co to umí. Asi stejně tak jsem na tom s excelem, ale tam jsem na tom hůř. A pravděpodobně budu starší než ty - to jen tak naokraj. Psát se mi to moc nechtělo, ale proč to nezkusit :-)
...
Ano - to je to důležitý - děláš v tom X let a začínal jsi, když ti bylo -náct, měl jsi k tomu přístup myšleno fyzicky přístup - a bavilo tě to. Mne ve stejným věku bavilo něco jinýho a jak už jsem tady mockrát zmínil, k počítači jsem poprvé přičuchnul až na vojně - a to ještě jen jako klasickej "BFU" navíc s hrozbou postihu "nešahej na nic co neumíš, běda jestli to poyebeš!" - na nějaký zkoušení "co to udělá" moc prostoru nebylo. Svůj vlastní komp, na kterým si můžu vyvádět co skutečně JÁ chci, jsem si poprvé kupoval až když mi bylo skoro 40 - a prostě jsem ho doma potřeboval pro činnosti související se zaměstnáním. Ale ani tak mě programování nikdy neživilo a dej Pámbu ani živit nebude ...

Napsal: 16 kvě 2024, 16:39
od DukeNuke
V pohodě. Každej má životní cestu jinou. Pokud ti to pomůže budu rád. A kdybychom se náhodou potkali, můžeš mi koupit pivo :-)

Napsal: 17 kvě 2024, 03:27
od EKKAR
Tak vyzkoušeno, funguje to, akorát se musí dělat po menších dávkách, neumí to po sobě průběžně uvolňovat RAMku a při větším počtu konvertovanejch fajlů padne komp z důvodu nedostatku paměti ...

Napsal: 18 kvě 2024, 22:17
od DukeNuke
Zůstává tam otevřený objekt word. Tím se zaplní paměť - moje chyba.
Doplň si do kódu 41 řádek - objWord.Quit.

Kód: Vybrat vše

        ' vynulování objektů        
        Set objRange = Nothing
        Set objSelection = Nothing
        Set objDoc = Nothing
        objWord.Quit
        Set objWord = Nothing

Napsal: 18 kvě 2024, 22:41
od EKKAR
Jo, teď jsem to sem chtěl dopsat jako upozornění pro případný další zájemce o použití, že se to musí spouštět jen po menších dávkách, řádově po 20-30 fajlech doc/docx - protože mám 16GB RAMky a "půltero" SSD na 64b systém, procík Ryzen 5 1600 Six-Core na 3,2GHz časování - neboli to není jen takový vořezávátko - a pokus hromadně upravit cca 300ks adresář doců/docxů mi doslova shodil systém. Je to jasný, skládals to narychlo, ale funkční to je - to je nejdůležitější. Na vychytání blech je čas pozdějc. Jdu to doplnit a testnout.

Napsal: 19 kvě 2024, 22:36
od EKKAR
A ještě jedno malý mínus jsem zjistil - když běží tenhle script, nelze na stejným kompu používat Word, ten script ho vždycky zavře, když končí úpravu jinýho souboru. Prostě zavírá Word jako celek, ne jen to "svoje" otevřený podokno. Ale to už je jen muška jenom zlatá, s tím se dá žít. Určitě by se to ještě dalo upravit, ALE NENÍ TO NUTNĚ POTŘEBA.

Napsal: 19 kvě 2024, 23:32
od tomasjedno
Zkusil jsem to pustit a vůbec to nefunguje! Ještě že jsem si před tím odinstaloval Word, jinak by mi ho to rozjebalo. A navíc mi teď celý večer nějaký zatracený generál Failure pořád čte disk - neznáte ho někdo? :D

Napsal: 20 kvě 2024, 00:04
od masar
Bez Wordu chtít otevírat Word asi nepůjde. Ale to "rozjebání" určitě nehrozí.
:wink:

Napsal: 20 kvě 2024, 00:05
od tomasjedno
:D :D :D :D :D :D :D :D :D :D

Napsal: 23 kvě 2024, 11:00
od DukeNuke
@ekkar: s tím se budeš muset smířit. Uzavření wordu dělá metoda .Quit, bohužel ukončí všechny instance objektu word.
Když nechám jeden objekt pro celou práci, tak to nefunguje korektně - ponechává to v adresáři soubory ~$filename, což považuji za větší zlo (tento soubor vznikne, když ve wordu otevřeš filename.doc).
Případně zkus AI, ať to předělá :-)

Napsal: 01 čer 2024, 00:07
od masar
Pro příští zájemce jsem upravil skript VBA a obohatil o interaktivní GUI, stačí otevřít přiložený soubor .doc ve Wordu a povolit zpracování maker.
Pracuje výrazně rychleji než zmíněný soubor .vbs a nemá jeho nectnosti.
Vyzkoušeno na Word 2003 a Word 2007. Nefunguje v LibreOffice.
:wink:
--------
edit: Ještě jsem opravil některé chyby a doplnil o vobu řezu písma.