[ TheStiv @ 12.07.2009. 11:39 ] @
Pozdrav,

da li itko kuži napravit sljedeće? Ako u dokumentu imam neki dio teksta npr: document no. 1 i zatvorim taj dokument, kad ga otvorim da se ovaj broj uveća na document no. 2, opet sljedećim otvaranjem documet no. 3 itd. Znam to u excelu napravit, al i wordu neam pojma...



Big thx unaprijed za bilo kakav savjet
[ 3okc @ 12.07.2009. 12:18 ] @
Da, u Excelu bi, pretpostavljam, podatak čuvao u nekoj ćeliji pa bi ga po potrebi iz makroa očitavao i menjao. Problem je gde skladištiti podatak u Wordu?! :)

Word ima potpuno drugačiji objektni model, što je i razumljivo, ali postoje i neke sličnosti.. Ono što mi prvo palo na pamet da bih probao, jeste da kreiram Hidden Bookmark.

Takođe, mogao bi ovo da skladištiš pod sekcijom Document > Properties, gde možeš čak i da kreiraš proizvoljne "osobine" prema sopstvenim potrebama, a ova se upravo čini kao takva. ;)
[ TheStiv @ 12.07.2009. 12:54 ] @
Jel može neki pobliži opis toga, moje znanje worda je stvarno sramotno. Ako ti se da naravno...
[ 3okc @ 12.07.2009. 13:08 ] @
Nažalost, nemam vremena sada time da se bavim, dao sam ti samo ideju u kom pravcu da kreneš, svakako sam pretpostavio da imaš neko iskustvo kada si se već uhvatio da radiš u VBA.
Najlakši metod je da pokreneš Macro Recorder dok vršiš izmene pa će ti se u generisanom kodu pokazati koje objekte treba da koristiš.

Dakle, pokušaj u File > Properties > Custom da kreiraš sopstvenu kategoriju - dok je uključen Recorder. Potom, menjaj ovu kategoriju i, tako, vidi šta ćeš dobiti.. :)
[ 3okc @ 13.07.2009. 08:18 ] @
Macro Recorder mi nije zabeležio nikakve izmene u Properties ali sam objekat našao u Helpu, rešenje je relativno jednostavno. Pogledaj prikačeni fajl: "ručno" sam kreirao osobinu dokumenta i nazvao je "DocOpened"; nadalje o njoj brine kod smešten u delu koji se izvršava pri svakom otvaranju dokumenta: inkrement zatečene vrednosti, osvežavanje prikaza u dokumentu (može da se izostavi ako se podatak neće videti u dokumentu), i snimanje izmene. Ovaj poslednji korak je problematičan jer korisnik može pre otvaranja da spreči makro da se izvrši i tada nema evidencije. Takođe, ovu osobinu možeš da izmeniš i bez otvaranja dokumenta! Desni klik na fajl > Properties. :)

Code:

Private Sub Document_Open()

    With ThisDocument.CustomDocumentProperties("DocOpened")
        .Value = .Value + 1
    End With
    Fields.Update
    ThisDocument.Save
End Sub


Ako imaš potrebu da iz VBA kreiraš nove oznake/osobine dokumenta, odradiće ti ova komanda:

Code:

ThisDocument.CustomDocumentProperties.Add _
        Name:="DocOpened", _
        Value:=0, _
        Type:=msoPropertyTypeNumber, _
        LinkToContent:=False
[ TheStiv @ 13.07.2009. 10:46 ] @
Super rješenje! Ja sam već krenuo u nekakve objekte :-)

Puno ti hvala.