VBA – zadaci sa tekstom uradjeni

Posted: jul 20, 2011 in Uncategorized

Kreirati novi Word dokument pod nazivom TrecaG.doc (ručno!) i u njemu otkucati tekst po želji. U tom dokumentu kreirati proceduru ManjeOd5 koja će kreirati novu Excel radnu svesku pod nazivom Sveska3.xls u istom folderu.

Procedura treba da u prvi radni list kreirane radne sveske iskopira sve rečenice iz Word dokumenta koje imaju manje od 5 riječi. Rečenice kopirati u prvu kolonu, tj. u ćelije A1, A2, A3 itd.

Ukoliko ne postoji nijedna takva rečenica, u ćeliju A1 prvog radnog lista upisati tekst „Ne postoji nijedna rečenica sa manje od 5 riječi.

Sub ManjeOd5()

Dim E As New Excel.Application, W As Excel.Workbook, X As Excel.Worksheet, R As Range, I As Integer

Set W = E.Workbooks.Add

W.Worksheets.Add

Set X = W.Worksheets(1)

I = 1

For Each R In ActiveDocument.Sentences

If R.Words.Count < 5 Then

X.Cells(1, I).Value = R.Text

I = I + 1

End If

Next

If I = 1 Then

X.Cells(1, 1).Value = „Ne postoji ni jedna recenica sa manje od 5 rijeci.“

End If

W.SaveAs ThisDocument.Path & „\Sveska3.xls“

E.Quit

Set E = Nothing

End Sub

Napisati proceduru koja se startuje prilikom zatvaranja Word dokumenta koja pita korisnika da li želi arhivirati dokument. Ukoliko korisnik odgovori potvrdno dokument se snima u folderu „C:\Temp\Arhiva” pri čemu se naziv dokumenta formira u obliku dan-mjesec-godina (primjer naziva: 13-12-2010.doc) Potrebno je provjeriti i da li takav dokument već postoji u folderu „C:\Temp\Arhiva”. Ako postoji, modifikovati naziv novog dokumenta dodavanjem broja na njegov kraj. (Ako u folderu arhiva postoji dokument 13-12-2010.doc, tada naredni dokument arhiviramo pod nazivom 13-12-2010_(1).doc, sledeći pod 13-12-2010_(2).doc itd.)

ThisDocument modul

Private Sub Document_Close()

Dim I As Integer, S As String, S1 As String, s2 As String

S1 = „C:\Temp\Arhiva\“ & Format(Date, „dd-mm-yyyy“) &

„.doc“

I = 0

S = Dir(S1 & „\*.doc“)

While S <> „“

S = Dir

I = I + 1

Wend

If I <> 0 Then

s2 = Format(Date, „yyyy-mm-dd“) & „(“ & I & „)“ & „.doc“

Else

MkDir S1

s2 = Format(Date, „yyyy-mm-dd“) & „.doc“

End If

ActiveDocument.SaveAs S1 & „\“ & s2

End Sub

Napisati Word makro koji kreira Excel dokument Tabele.xls i sve tabele Word dokumenta prepisuje u kreirani Excel dokument po principu jedna tabela – jedan radni list. U ćeliju A1 treba upisati redni broj tabele (u obliku: „Tabela N“), dok u ćeliju B1 treba upisati naziv Word dokumenta zajedno sa putem gdje se on nalazi (na primjer: „C:\Temp\VBA\Primjer.doc“)

Sub drugi()

Dim XLS As New Excel.Application

Dim WS As Worksheet

ime = ActiveDocument.Name

XLS.Workbooks.Add.SaveAs ActiveDocument.Path & „\Tabele.xls“

For i = 1 To ActiveDocument.Tables.Count – XLS.Sheets.Count

XLS.Sheets.Add

Next i

With XLS.ActiveWorkbook.Sheets

For i = 1 To ActiveDocument.Tables.Count

Set WS = XLS.ActiveWorkbook.Worksheets(i)

WS.Cells(3, 1) = „Tabela: “ & i

WS.Cells(2, 1) = „Putanja: “ & ActiveDocument.Path & „\“ & ime

WS.Cells(3, 3) = ActiveDocument.Tables(i).Range

Next i

End With

XLS.ActiveWorkbook.Save

XLS.ActiveWorkbook.Close

XLS.Quit

End Sub

Advertisements

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se / Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se / Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se / Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se / Promeni )

Povezivanje sa %s