zapocet 11.1.2008

zapocet 11.1.2008

Příspěvekod vidlak » 11. 1. 2008 13:14

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) 123 krát
vidlak
Matfyz(ák|ačka) level I
 
Příspěvky: 20
Registrován: 10. 1. 2008 23:19
Typ studia: Informatika Bc.
Login do SIS: hoffp4am

Re: zapocet 11.1.2008

Příspěvekod hippies » 11. 1. 2008 13:57

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ů..
Uživatelský avatar
hippies
Admin(ka) level I
 
Příspěvky: 990
Registrován: 29. 9. 2004 11:46
Bydliště: Mladá Boleslav
Typ studia: Informatika Mgr.
Login do SIS: procj4am

Re: zapocet 11.1.2008

Příspěvekod vidlak » 11. 1. 2008 17:24

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:
vidlak
Matfyz(ák|ačka) level I
 
Příspěvky: 20
Registrován: 10. 1. 2008 23:19
Typ studia: Informatika Bc.
Login do SIS: hoffp4am

Re: zapocet 11.1.2008

Příspěvekod hippies » 11. 1. 2008 22:30

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
hippies
Admin(ka) level I
 
Příspěvky: 990
Registrován: 29. 9. 2004 11:46
Bydliště: Mladá Boleslav
Typ studia: Informatika Mgr.
Login do SIS: procj4am

Re: zapocet 11.1.2008

Příspěvekod nardew » 30. 1. 2008 15:23

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
Uživatelský avatar
nardew
Matfyz(ák|ačka) level II
 
Příspěvky: 59
Registrován: 2. 11. 2006 10:15
Bydliště: Otava - Jizni Mesto
Typ studia: Informatika Bc.


Zpět na Aplikační software

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 2 návštevníků