ObjExport2この ObjExport2 マクロでは Calc のグラフ (チャート) やドローオブジェクトなどを PNG や EPS などの画像ファイルとして簡単にエクスポートできます。 "Writer", "Calc", "Draw", "Impress" で使用できます。OpenOffice.org Draw がエクスポートできるフォーマットすべて使用することができます。 実行には "Draw" が必要です。OpenOffice.org Draw や StarSuite, StarOffice 6.0 Draw がインストールされていなければ動作しません。(実行する "Writer", "Calc", "Draw", "Impress" アプリケーションと同じ時にインストールされたもので別のバージョンでの "Draw" ではたぶん動作しません。) ダウンロードインストール上記のファイルをダウンロードして Writer で開きます。ドキュメントの中の install ボタンをクリックします。表示されるインストーラに従ってインストールしてください。 "mytools" ライブラリに "ObjExport2" モジュールがインストールされます。 実行
このマクロでは ObjExport と違ってさまざまなものがエクスポートできます。また,エクスポートオプションも選択できます。 注意
Version 641 以上で使用できます。646 以上では確認が取れていません。 免責事項このファイルの使用またはこのファイルに含まれる OpenOffice.org Basic のマクロの使用で生じた全ての事態に製作者は責任をとりません。間違って重要なファイルに上書きしないようにしましょう。 コードSub ObjExport2 'September 4, 2003. ver. 0.1 on error goto ErrorHandler Dim oDoc As Object, oDocFrame As Object Dim oDocController As Object Dim oDraw As Object, oDrawFrame As Object Dim oDesktop As Object Dim bIsDrawExist As Boolean Dim nVersion As String Dim nCopy As Integer Dim nPaste As Integer Dim nSelect As Integer Dim nExport As Integer Dim aArgs(0) As New com.sun.star.beans.PropertyValue nVersion = CInt( GetSolarVersion ) oDesktop = createUnoService( "com.sun.star.frame.Desktop" ) oDoc = ThisComponent aArgs(0).Name = "Hidden" aArgs(0).Value = True'False oDraw = oDesktop.loadComponentFromURL( "private:factory/sdraw", "_blank", 0, aArgs() ) bIsDrawExist = True bIsDrawExist = IsNull( oDraw ) If NOT bIsDrawExist Then oDrawFrame = oDraw.getCurrentController().getFrame() oDocController = oDoc.getCurrentController() oDocFrame = oDocController.getFrame() Select Case nVersion Case > 642 '1.1 nCopy = 5711 'SID_COPY nPaste = 5712 'SID_PASTE nSelect = 5723 'SID_SELECTALL nExport = 5829 'SID_EXPORTDOC Case 641 '1.0 nCopy = 5711 'SID_COPY nPaste = 5712 'SID_PASTE nSelect = 5723 'SID_SELECTALL nExport = 27283 'SID_PUBLISH End Select SlotCommand( nCopy, oDocFrame ) SlotCommand( nPaste, oDrawFrame ) SlotCommand( nSelect, oDrawFrame ) SlotCommand( nExport, oDrawFrame ) oDraw.close( true ) End If ErrorHandler: bIsDrawExist = True bIsDrawExist = IsNull( oDraw ) If NOT bIsDrawExist Then oDraw.close( true ) End If End End Sub Sub SlotCommand( nSlotID As Integer, oLocFrame As Object ) Dim aArg() As New com.sun.star.beans.PropertyValue Dim oURL As New com.sun.star.util.URL Dim oTrans As Object Dim oDisp As Object oTrans = createUnoService( "com.sun.star.util.URLTransformer" ) oURL.Complete = "slot:" & CStr( nSlotID ) oTrans.parsestrict( oURL ) oDisp = oLocFrame.queryDispatch( oURL, "_self", 0 ) oDisp.dispatch( oURL, aArg() ) End Sub コメント |