Obecnie w swoich dokumentach próbuję wykorzystać makro zapisujące arkusz jako PDF. Makro znalazłem na angielskiej wersji forum i zmodyfikowałem pod siebie. Obecnie wygląda ono tak:
- Kod: Zaznacz cały Rozszerz widokZwiń widok
REM ***** BASIC *****
Sub SaveAs
Dim sFileName1 As String
Dim sFileName2 As String
Dim sFileName3 As String
Dim sBackslash As String
Dim sPath As String
Dim sSaveToURL as string
GOD = Format(Time, "hh-mm-ss")
sPath = "y:\archiwum\"
sFileName1 = thisComponent.getSheets.getByName("Specyfikacja").getCellRangeByName("H7").getString ' Komórka zawsze ma wartość "Słowo\Numer"
sFileName2 = thisComponent.getSheets.getByName("Specyfikacja").getCellRangeByName("C12").getString ' Wartość to data w formacie DD.MM.RRRR
sFileName3 = thisComponent.getSheets.getByName("Specyfikacja").getCellRangeByName("H9").getString ' Wartość do słowo
sBackslash = "\"
sSaveToURL = ConvertToURL(sPath & sFileName2 & sBackslash & sFileName1 & "_" & sFileName3 & "_" & GOD & ".pdf")
thisComponent.storeToUrl(sSaveToURL, Array(MakePropertyValue("FilterName", "calc_pdf_Export")))
End Sub
Function MakePropertyValue(Optional sName As String, Optional sValue) As com.sun.star.beans.PropertyValue
'-------------------------------------------------------------------
' Create and return a new com.sun.star.beans.PropertyValue
'-------------------------------------------------------------------
Dim oPropertyValue As New com.sun.star.beans.PropertyValue
If Not IsMissing(sName) Then
oPropertyValue.Name = sName
EndIf
If Not IsMissing(sValue) Then
oPropertyValue.Value = sValue
EndIf
MakePropertyValue() = oPropertyValue
End Function
Posiadam taki problem, że przez znak backslasha w komórce H7 tworzy mi katalog o nazwie "Słowo" i nazwa pliku zaczyna się od "Numer". Potrzebowałbym zmodyfikować makro tak, aby w zmiennej sFileName1 zamienić backslash na "_", bez ingerencji w to co jest wpisane w arkuszu.
Czy jesteście w stanie mi pomóc?