マイマクロに後述のマクロを登録し、以下のコマンドライン(関数に対して出力先を引数として渡す)で実現したいことが出来ました。
soffice --headless --calc “macro:///Standard.Module1.ExportToPDF(C:/Users/Public/Desktop/hoge/)” “C:\tmp\hoge.xlsx”
■マクロ
' PDFに変換する関数
Sub ExportToPDF(outputFolder As String)
Dim arg(0) As New com.sun.star.beans.PropertyValue
arg(0).Name = "Selection"
arg(0).Value = GetSelectedSheets(ThisComponent)
Dim args(1) As New com.sun.star.beans.PropertyValue
args(0).Name = "FilterName"
args(0).Value = "calc_pdf_Export"
args(1).Name = "FilterData"
args(1).Value = arg()
' 保存先ファイル名を作成
Dim fileName As String
Dim docTitle As String
Dim dotPos As Integer
docTitle = ThisComponent.Title
' 最後の "." の位置を取得(左からループで検索)
dotPos = 0
Dim i As Integer
For i = Len(docTitle) To 1 Step -1
If Mid(docTitle, i, 1) = "." Then
dotPos = i
Exit For
End If
Next i
' 拡張子を削除("." が見つかった場合のみ)
If dotPos > 0 Then
docTitle = Left(docTitle, dotPos - 1)
End If
' 出力ファイル名
fileName = docTitle & ".pdf"
' 出力ファイル名をURLへ変換
Dim outputURL As String
outputURL = ConvertToURL(outputFolder & fileName)
' PDFを指定フォルダに保存
ThisComponent.storeToURL(outputURL, args())
' LibreOfficeを終了
StarDesktop.terminate()
End Sub
' 選択されたシートを取得する関数
Function GetSelectedSheets(oDoc As Object) As Object
Dim oController As Object
Dim oSelection As Object
oController = oDoc.CurrentController
oSelection = oController.getSelection()
' 選択範囲がシートオブジェクトでない場合はドキュメント全体をエクスポート
If oSelection Is Nothing Then
' シートが選択されていない(そんな状況あるか)
GetSelectedSheets = oDoc.Sheets
ElseIf NOT oSelection.supportsService("com.sun.star.sheet.SheetCellRanges") Then
' 単一シートが選択されている
GetSelectedSheets = oDoc.CurrentController.ActiveSheet
Else
' 複数シートが選択されている
GetSelectedSheets = oSelection
End If
End Function
マクロ内の関数に引数も渡すことも出来ましたので、ひとまず本質問は解決とさせていただきます。
コメントしていただいた皆様ありがとうございました!大変助かりました。
また何かありましたら、よろしくお願い致します。