zapocet 11.1.2008

vidlak
Matfyz(ák|ačka) level I
Příspěvky: 20
Registrován: 10. 1. 2008 23:19
Typ studia: Informatika Bc.

zapocet 11.1.2008

Příspěvek od vidlak »

Na termin se nakonec prihlasili jen 4 lide(+nejaci dalsi z buhvijakeho predmetu). Ani nevim, jak kdo dopadl. Behem testu neni pristup k internetu, nesmi se pouzivat temer nic (ani mobil nemuze byt na stole). Povolena je jen napoveda MS Office, pripadne donesene tiskoviny (knizky, vypisky) a prezentace z prednasek (pribaleny u zadani). Obvykle zadani je excelovsky soubor s tabulkovymi ukoly jako pri cvicenich (viz predchozi temata) a naprogramovani makra. Ja odevzdal hodne bodovanych ukolu, tak sem dostal jen to makro.
zadani:
v prvnim odstavci dokumentu je text, zbytek dokumentu prazdny. Makro ma vytisknout vzorkovnik vsech dostupnych fontu tak, ze pro kazdy font vytvori novy odstavec, do nej na zacatek vypise jmeno fontu (fontem Arial, vel. 12) a za nej text z prvniho odstavce timto fontem vel. 12, normalne, tucne a kurzivou. Castecny vystup je v priloze.

moje reseni:

Kód: Vybrat vše

Sub vzornik()
  Dim i As Integer
  Dim ukazatel As Range
  Dim vstup As Range
  Dim s As String
  
  'ulozeni celeho prvniho odstavce
  Set vstup = ActiveDocument.Paragraphs(1).Range
  'vyber zkratime o znak konce odstavce
  vstup.End = vstup.End - 1
  'nastaveni ukazatele na nejakou hodnotu, jen aby byla promenna inicializovana
  Set ukazatel = ActiveDocument.Paragraphs(1).Range
  
  'LandscapeFontNames - objekt, ktery obsahuje jmena vsech dostupnych fontu
  For i = 1 To LandscapeFontNames.Count
    s = LandscapeFontNames(i)
    'pridani noveho odstavce
    ActiveDocument.Paragraphs.Add
    
    With ActiveDocument.Paragraphs(i + 1).Range
      .Text = s & ": " 'nejdriv vypise na zacatek jmeno fontu
      .Font.Reset 'vymaze se puvodni font odstavce
      .Font.Name = "Arial" ' a nastavi se na Arial
      
      ukazatel.Start = .End - 1 'ukazatel nastavime na posledni misto pred znakem konce odstavce
      ukazatel.End = ukazatel.Start 'a nastavime mu nulovou sirku
      ukazatel.InsertAfter (vstup.Text & " ") 'ted za nej vytisknem vstup
      ukazatel.End = .End - 1 'ukazatel rozsirime o vsechno co jsme vlozili
      ukazatel.Font.Reset 'vymazeme puvodni font
      ukazatel.Font.Name = s 'a nastavime na aktulne zpracovavany
      
      ukazatel.Collapse (wdCollapseEnd) 'ukazatel stahneme jen na konec vlozeneho textu
      ukazatel.InsertAfter (vstup.Text & " ") 'a pokracujeme dal stejne jako predtim
      ukazatel.End = .End - 1
      ukazatel.Font.Bold = True 'jen font je uz nastaven, staci jen zmenit na bold
      
      ukazatel.Collapse (wdCollapseEnd) 'a znovu to same
      ukazatel.InsertAfter (vstup.Text)
      ukazatel.End = .End - 1
      ukazatel.Font.Bold = False 'jen ted jeste musime zrusit bold preneseny od predchoziho
      ukazatel.Font.Italic = True
      
      .Font.Size = 12 'a celemu odstavci nastavime velikost pisma na 12
    End With
  Next
  
End Sub
Nakonec sem to dostal za 1! Hura!!

P.S.: Makro je sice spravne, ale pri spusteni muze trvat hoooodne dlouho nez dobehne (zpomalovano jistou systemovou procedurou :evil: ). V labu na Male Strane bezelo asi 2 minuty, v labu v Troji nedobehlo(taky je tu nainstalovanych 861 fontu :lol: ...)
Přílohy
vzorkovnik.doc
(41 KiB) Staženo 311 x
Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Re: zapocet 11.1.2008

Příspěvek od hippies »

nebylo by slusne dat tam nekam doevents?
Chjo, dovede te si představit svět, kde by byla každá harmonická diferenciální forma (jistého typu) nesingulární projektivní algebraické variety racionální kombinací kohomologických tříd algebraických cyklů..
vidlak
Matfyz(ák|ačka) level I
Příspěvky: 20
Registrován: 10. 1. 2008 23:19
Typ studia: Informatika Bc.

Re: zapocet 11.1.2008

Příspěvek od vidlak »

To je dobre :) Diky za radu. Vsunuti DoEvents do cyklu pomohlo alespon v tom smyslu, ze word odpovida v realnem case a nezasek se. Jinak to zpomaleni je pry zpusobeno nejakou konverzi znaku pro tiskarnu (ci neco takoveho mi rikala pi. Forstova).

Ale to je stejne jedno...ucel (zapocet) to splilo aj tak :lol:
Uživatelský avatar
hippies
Admin(ka) level I
Příspěvky: 990
Registrován: 29. 9. 2004 12:46
Typ studia: Informatika Mgr.
Bydliště: Mladá Boleslav
Kontaktovat uživatele:

Re: zapocet 11.1.2008

Příspěvek od hippies »

jasny:) .. ja si jen nedovedu predstavit, ze bych neco takoveho bez doevents ladil, tak me prekvapilo, ze to tam nevidim;):D .. jinak pekny kod, predmet jsem sice nedal, ale VBA se celkem venuju a zas jsem okoukal par peknych triku:D
Chjo, dovede te si představit svět, kde by byla každá harmonická diferenciální forma (jistého typu) nesingulární projektivní algebraické variety racionální kombinací kohomologických tříd algebraických cyklů..
Uživatelský avatar
nardew
Matfyz(ák|ačka) level II
Příspěvky: 59
Registrován: 2. 11. 2006 10:15
Typ studia: Informatika Bc.
Bydliště: Otava - Jizni Mesto

Re: zapocet 11.1.2008

Příspěvek od nardew »

pisal si ze si mal len to makro, lebo si mal dost bodov za domace ulohy.. mozem vediet kolko presne to bolo "dost bodov" v tvojom pripade? :) dik
Odpovědět

Zpět na „Aplikační software“