Makro kopiujące

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
szybkibill123
Posty: 11
Rejestracja: pn lis 26, 2012 5:51 pm

Makro kopiujące

Post autor: szybkibill123 »

Znalazłem takie makro

Kod: Zaznacz cały

sub Kopiuj_do_ukrytego

­
Dim oDocument'Plik Ukryty
Dim oDocument1'Plik Aktywny
oDocument1=T­hisComponent

'Wyd­ruk - arkusz pliku aktywnego
'Wykaz - arkusz pliku ukrytego

'Dana1-po­bieranie tekstu z konkretnej komórki(F13)
oSheet=­oDocument1.Sheets.ge­tByName("Wydruk­")
oSheet.unpr­otect("password­") 'uzyskanie dostępu
oCell=oSheet.getCellR­angeByName("F13­")
s=oCell.getString()
­
'Otwarcie pliku ukrytego
Dim args(0) as new com.sun.star.beans.Pr­opertyValue
args(0)­.name = "Hidden"
a­rgs(0).Value = true
oDocument=StarD­esktop.loadComponent­FromURL("file:/­//C:\Test.ods",­ "_blank", 0, args())

oSheet=oDo­cument.Sheets.getByN­ame("Wykaz")'nazwa arkusza w pliku ukrytym
oSheet.unpro­tect("password") 'uzyskanie dostępu
oCell=oSheet.getCellR­angeByName("F3")
oCell.setString(s) 'wprowadzenie tekstu z komórki F13(Wydruk)

'Dana2­
oSheet=oDocument1.­Sheets.getByName("Wydruk")
oCell=oSheet.getCellR­angeByName("F15­")
s=oCell.getString()
­oSheet=oDocument.She­ets.getByName("­Wykaz")
oCell=­oSheet.getCellRangeB­yName("D3"­)
oCell.setString(s­)


'Sprawdzenie wolnego wiersza dla kolejnego kopiowania-w komórce I2 funkcja sprawdzajaca
oSheet=­oDocument.Sheets.get­ByName("Wykaz")
oCell=oSheet.­getCellRangeByName("I2")
Wier­sz=oCell.getValue

­
'Dana3-pierwszy wolny wiersz
oSheet=oDocum­ent1.Sheets.getByNam­e("Wydruk"­)
oCell=oSheet.getCellR­angeByName("Y38­")
v=oCell.getValue()
o­Sheet=oDocument.Shee­ts.getByName("W­ykaz")
oWklej=­oSheet.getCellByPosi­tion(14,Wiersz)
oWk­lej.setValue(v)

'­Dana4-drugi wolny wiersz
oSheet=oDocum­ent1.Sheets.getByNam­e("Wydruk"­)
oCell=oSheet.getCellR­angeByName("B43­")
s=oCell.getString()
­oSheet=oDocument.She­ets.getByName("­Wykaz")
oWklej­=oSheet.getCellByPos­ition(1,Wiersz)
oWk­lej.setString(s)

­'Dana3-trzeci wolny wiersz
oSheet=oDocum­ent1.Sheets.getByNam­e("Wydruk"­)
oCell=oSheet.getCellR­angeByName("B44­")
s=oCell.getString()
­oSheet.protect("password") 'zabezpieczenie arkusza

oSheet=oDo­cument.Sheets.getByN­ame("Wykaz")
oWklej=oSheet.ge­tCellByPosition(3,Wi­ersz)
oWklej.setStr­ing(s)
oSheet.prote­ct("password") 'zabezpieczenie arkusza


'Zapis pliku ukrytego
sciezka="C:/Test.ods"­
sciezkaURL=Convert­ToUrl(sciezka)

di­m args6(2) as new com.sun.star.beans.Pr­opertyValue
args6(0­).Name = "URL"
args­6(0).Value = nazwa
args6(1).Name = "FilterName"
args6(1).Value = "StarOffice XML (Calc)"
oDocume­nt.storeAsUrl(sciezk­aUrl,args6())

'ms­gbox("Skopiował­em i zamykam")

'Za­mkniecie pliku ukrytego
oDocument.c­lose(True)
end sub
Jest najprawdopodobniej tym czego szukam, niestety nie mam pojęcia jak je zmodyfikować do moich potrzeb chodzi mi głównie o wklejanie do pierwszego wolnego wiersza, ewentualnie jak pierwszy wolny wiersz zamienić na pierwszą wolną komórkę.
OpenOffice 3.1 na Windows Vista
ODPOWIEDZ