Ik heb hier een macro met VB in Openoffice. De bedoeling van de macro is dat hij ervoor zorgt dat het document automatisch een naam krijgt die is opgebouwd uit jaar+maand+dag+versienummer, dus bijvoorbeeld
20050915001.
De macro moet ook het bestand automatisch in een directory opslaan.
Totnogtoe werkt het gedeelte van het naam toekennen van jaar+maand+dag en het automatisch opslaan in een directory, maar werkt het geven van een versienummer niet.
Ik bedoel met het toekennen van een versienummer dat als je de macro een keer draait komt er bijvoorbeeld 20050915001 te staan en als je hem de zelfde datum nog een keer draait dan er dan 20050915002 komt te staan en nog een keer 20050915003, enz.
Nu kan ik de macro een keer draaien en hij werkt, en de volgende keer zegt hij dat het bestand al bestaat en doet hij niks. Weet iemand hoe ik dit kan oplossen zodat hij elke keer een nieuw versienummer geeft.
hier onder bevindt zich de code van de macro
Sub macro
Dim sFileName$, sFileFullName$
Dim MyDoc
Dim args(01) As New com.sun.star.beans.PropertyValue
Const cFilePath = "C:\Mijn Documenten"
myDoc = ThisComponent
sFileName = MakeFileNameOfDate
sFileFullName = ConvertToUrl(cFilePath & sFileName)
myDoc.StoreAsUrl(sFileFullName, args())
StartVersioning
End Sub
Function MakeFileNameOfDate as string
Dim myDate as Date
Dim nMonth%, nDay%
Dim sMonth$, sDay$
myDate = Date
nMonth = Month(myDate)
If nMonth < 10 then
sMonth = "0" & nMonth
Else
sMonth = nMonth
End If
nDay = Day(myDate)
If nDay < 10 then
sDay = "0" & nDay
Else
sDay = nDay
End If
MakeFileNameOfDate = Year(myDate) & sMonth & sDay & ".sxw"
End Function
Sub StartVersioning
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SaveVersionOnClose"
args1(0).Value = true
dispatcher.executeDispatch(document, ".uno:SaveVersionOnClose", "", 0, args1())
End Sub
20050915001.
De macro moet ook het bestand automatisch in een directory opslaan.
Totnogtoe werkt het gedeelte van het naam toekennen van jaar+maand+dag en het automatisch opslaan in een directory, maar werkt het geven van een versienummer niet.
Ik bedoel met het toekennen van een versienummer dat als je de macro een keer draait komt er bijvoorbeeld 20050915001 te staan en als je hem de zelfde datum nog een keer draait dan er dan 20050915002 komt te staan en nog een keer 20050915003, enz.
Nu kan ik de macro een keer draaien en hij werkt, en de volgende keer zegt hij dat het bestand al bestaat en doet hij niks. Weet iemand hoe ik dit kan oplossen zodat hij elke keer een nieuw versienummer geeft.
hier onder bevindt zich de code van de macro
Sub macro
Dim sFileName$, sFileFullName$
Dim MyDoc
Dim args(01) As New com.sun.star.beans.PropertyValue
Const cFilePath = "C:\Mijn Documenten"
myDoc = ThisComponent
sFileName = MakeFileNameOfDate
sFileFullName = ConvertToUrl(cFilePath & sFileName)
myDoc.StoreAsUrl(sFileFullName, args())
StartVersioning
End Sub
Function MakeFileNameOfDate as string
Dim myDate as Date
Dim nMonth%, nDay%
Dim sMonth$, sDay$
myDate = Date
nMonth = Month(myDate)
If nMonth < 10 then
sMonth = "0" & nMonth
Else
sMonth = nMonth
End If
nDay = Day(myDate)
If nDay < 10 then
sDay = "0" & nDay
Else
sDay = nDay
End If
MakeFileNameOfDate = Year(myDate) & sMonth & sDay & ".sxw"
End Function
Sub StartVersioning
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SaveVersionOnClose"
args1(0).Value = true
dispatcher.executeDispatch(document, ".uno:SaveVersionOnClose", "", 0, args1())
End Sub
[ Voor 3% gewijzigd door Verwijderd op 15-09-2005 08:59 ]