OOobbs/38
質問
oDoc.print(aPrintOption())のaPrintOption()でページ指定しないとそのドキュメントのすべてのページを印刷してしまうようです。これはoSheet.setPrintAreas(Array(aRange))で印刷範囲を指定しても同じことになりました。 現在アクティブになっているシートのみを印刷したい場合、印刷プレビューで画面左下に表示されるページ番号を見て、印刷→印刷範囲でページ指定すれば、そのページのみを印刷できます。しかし、マクロであるシートのみを印刷したい場合は、シートカウントが同じであってもページ数はデータ量により変わってきます。このような場合、あるシートのページ番号を取得する方法はありますか?また、できれば、あるシートのみを印刷するPrintメソッドはあるのでしょうか?oSheet.print(aPrintOption())はエラーになってしまい途方にくれています。 回答
例を次に示します。表示されているアクティブなシートのみが印刷されます。 Sub Main Dim oDoc As Object Dim oGSheetSettings As Object Dim aPrintOption(0) As New com.sun.star.beans.PropertyValue Dim aPrinter(0) As New com.sun.star.beans.PropertyValue oDoc = ThisComponent oGSheetSettings = CreateUnoService("com.sun.star.sheet.GlobalSheetSettings") oGSheetSettings.PrintAllSheets = false aPrinter(0).Name = "Name" aPrinter(0).Value = "いきなりPDF" oDoc.setPrinter(aPrinter()) oDoc.print(aPrintOption()) End Sub この GlobalSheetSettings はシートの設定の一般的な設定を扱うためのサービスです。このサービスにはドキュメント全般の設定以外のシートに特化した設定について取り扱います。一応,OOoBasic/Calc/settings をみて OOoBasic/Calc/obj/GlobalSheetSettings? を参考にしてもらえれば設定できると思います。 設定について全部紹介しておけばよかったですね。
|