OpenOffice.org Basicでガントチャート
OpenOffice.org Basicを使ってガントチャート作成用マクロ ガントチャートforOOoを開発する手順を紹介していきます。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
図形オブジェクトの追加

シート上に図形オブジェクトを追加する方法を解説します。

まず、正方形を追加する例を示します。

Sub Main

    Dim oSheet As Object
    Dim oDrawPage As Object
    Dim oDraw As Object
    
    oSheet = ThisComponent.CurrentController.ActiveSheet
    oDrawPage = oSheet.getDrawPage
    
    oDraw = ThisComponent.createInstance( _
        "com.sun.star.drawing.RectangleShape")
    
    Dim Width As Long
    Dim Height As Long
    Dim X As Long
    Dim Y As Long
    
    Width = 1000
    Height = 1000
    X = 2000
    Y = 2000
    
    setDrawSizePosition(oDraw, Width, Height, X, Y)
    
    oDrawPage.Add(oDraw)
    
End Sub
 
Sub setDrawSizePosition(oDraw As Object, _
    Width As Long, Height As Long,  X As Long, Y As Long)
    
    setDrawSize(oDraw, Width, Height)
    setDrawPosition(oDraw, X, Y)
    
End Sub

手順としては、createInstanceで図形オブジェクトを生成してから、シートに追加するということになります。ここで、createInstanceに渡す文字列を変更する事で円、曲線、直線など様々な図形を描画する事ができます。
また、サイズと位置を設定するために、前回までで作成した2つの関数を一つにまとめるsetDrawSizePosition関数を作って利用しています。この時に設定する数値も単位は1/100mmなので、1cmならば「10000」となります。

種類 文字列
四角 com.sun.star.drawing.RectangleShape
直線 com.sun.star.drawing.LineShape
com.sun.star.drawing.EllipseShape
曲線 com.sun.star.drawing.OpenBezierShape

しかし、これらの文字列がわからないと目的の図形が描けずに困る事になります。そんな時、膨大な量のマニュアルから情報を探すのも楽ではないので、僕は実際に目的の図形を描画してから、下記に示す関数で文字列を取得するようにしています。

Sub showShapeType(oDraw As Object)
    
    InputBox "This is a Shape Type that you want to know.", _
        "Shape Type", oDraw.getShapeType
    
End Sub

この関数の利用例を下記に示します。

Sub Main

    Dim oSheet As Object
    Dim oDrawPage As Object
    Dim oDraw As Object
    
    oSheet = ThisComponent.CurrentController.ActiveSheet
    oDrawPage = oSheet.getDrawPage
    
    oDraw = oDrawPage.getByIndex(0)
    
    showShapeType(oDraw)
    
End Sub

後は実行して、InputBoxに表示された文字列をコピー&ペースとして使っています。

スポンサーサイト

テーマ:OpenOffice.org - ジャンル:コンピュータ

コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://shinob.blog42.fc2.com/tb.php/97-b6c93fb5
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
COPYRIGHT(C) 2004 POWERD BY FC2 ALLRIGHT RESERVED.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。