Здравствуйте! Есть первая часть скрипта и она прекрасно работает.
Суть: Мне нужно было по кнопке на листе после манипуляций вывести предварительный просмотр.
Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Sub Кнопка_Печать1()
Application.ScreenUpdating = 0
Worksheets("DATA").Unprotect Password:="123321"
With Sheets("DATA")
Range("$A$1:$G$35").Select
Columns("A:G").Hidden = False
Worksheets("DATA").Range("$B$11:$B$27").WrapText = True
Worksheets("DATA").Range("$C$23:$C$27").WrapText = True
.PageSetup.PrintArea = "$A$1:$G$35"
' .Application.Dialogs(xlDialogPrint).Show , , , 2
'Code_Libre
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
Dim oRanges(0) As New com.sun.star.table.CellRangeAddress
' Устанавливаем лист печати (Лист1)
oRanges(0).Sheet = 0
' Устанавливаем первую ячейку первого диапазона (A1)
oRanges(0).StartColumn = 0
oRanges(0).StartRow = 0
' Устанавливаем последнюю ячейку первого диапазона (D5)
oRanges(0).EndColumn = 7
oRanges(0).EndRow = 35
' Выбираем указанные диапазоны
ThisComponent.CurrentController.getActiveSheet().setPrintAreas(oRanges())
'Application.Wait Time:=Now + TimeValue("0:00:5")
dispatcher.executeDispatch(document, ".uno:PrintPreview", "", 0, Array())
end with
End Sub
Мне также нужно, чтобы вторая часть кода срабатывала после события "закрытие предварительного просмотра"
Attribute VBA_ModuleType=VBAModule
Option VBASupport 1
Sub Main(oEvent as new object)
a = oEvent.Source
oEvent.Source.getModel()
'oEvent = dispatcher.executeDispatch(document, ".uno:ClosePrintPreview", "", 0, Array())
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:ClosePrintPreview", "", 0, Array())
With Sheets("DATA")
Columns("A:G").Hidden = True
Range("$i$18").Select
end with
'Code_Libre
' endif
Worksheets("DATA").Protect Password:="123321"
Application.ScreenUpdating = 1
End Sub
Помогите пожалуйста, как я могу этого добиться?