人気ブログランキング | 話題のタグを見る
(OpenOfficeBasic)印刷プレビューかどうかを判断する
OpenOffice3.2のマクロ(Basic)で、現在のビューが印刷プレビューかどうかを判断する方法です。
自力では難しそうだったので、ググったら OOobbs2/142 でどんぴしゃな方法が載っていました。

100%コピペなコードですが、転載させてもらいます。

Function IsPrintPreview( oDoc ) As Boolean
Dim bPreview As Boolean
sViewInterface = ""
oModMgr = CreateUnoService( _
"com.sun.star.frame.ModuleManager")
sModule = oModMgr.identify(oDoc)

Select Case sModule
Case "com.sun.star.text.TextDocument"
sViewInterface = "com.sun.star.view.XViewSettingsSupplier"
Case "com.sun.star.sheet.SpreadsheetDocument"
sViewInterface = "com.sun.star.sheet.XSpreadsheetView"
Case Else
sViewInterface = ""
End Select

If sViewInterface <> "" Then
oController = oDoc.getCurrentController()
bPreview = NOT HasUnoInterfaces(oController, sViewInterface)
End If

IsPrintPreview = bPreview
End Function

この関数の引数に、ThisComponent を渡すと、印刷プレビューかどうかが true,false で返ってくるので、これで判別できます。
by jehoshaphat | 2011-07-10 23:13 | OpenOffice | Comments(0)


<< (WSH)VBScript(ま... (OpenOffice)メニュ... >>