OpenOffice.org Basicでガントチャート
OpenOffice.org Basicを使ってガントチャート作成用マクロ ガントチャートforOOoを開発する手順を紹介していきます。
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
データ読込み「プロパティ」

従来通り、シート名とデータ用の配列を宣言します。

Public PropertySheetName As String
Public PropertySheet As Object
 
Public Properties() As PropertyType

次に、個別で参照する事の多い工程表開始日を記録した行番号を記録する変数と、読み込みを行った後か否かを記録する変数を宣言します。

Private BeginDateRow As Integer
Private flgLoaded As Boolean

そして、個別の読込み用関数とそれを利用した一括読込み用の関数を宣言します。

Public Function LoadAll As Integer
    
    If flgLoaded Then
        LoadAll = Count
        Exit Function
    End If
    
    Dim i As Integer
    
    Redim Preserve Properties(0)
    
    i = 1
    Do
        If Cells(PropertySheet, i+2, 4).String = "" Then Exit Do
        Redim Preserve Properties(i)
        LoadById(Properties(i), i)
        i = i + 1
    Loop
    
    flgLoaded = True
    LoadAll = i - 1
    
End Function
 
Private Function LoadById(wkProperty As PropertyType, _
    ByVal Id As Integer) As Boolean
    
    Dim i As Integer
    
    With wkProperty
        
        ._Id = Id
        Id = Id + 2
        i = 4
        
        ._SheetName = Cells(PropertySheet, Id, i).String: i = i + 1
        
        ._BeginDate = Cells(PropertySheet, Id, i).Value
        BeginDateRow = i: i = i + 1
        
        ._CellUnit = Cells(PropertySheet, Id, i).Value: i = i + 1
        ._DrawColumns = Cells(PropertySheet, Id, i).Value: i = i + 1
        ._DrawRows = Cells(PropertySheet, Id, i).Value: i = i + 1
        i = i + 1
        ._LeftColumn = Cells(PropertySheet, Id, i).Value: i = i + 1
        ._TopRow = Cells(PropertySheet, Id, i).Value: i = i + 1
        i = i + 1
        ._AutoUpdate = Cells(PropertySheet, Id, i).Value: i = i + 1
        i = i + 1
        ._ChartBarWeight = Cells(PropertySheet, Id, i).Value: i = i + 1
        ._ChartBarPlanPos = Cells(PropertySheet, Id, i).Value: i = i + 1
        ._ChartBarActPos = Cells(PropertySheet, Id, i).Value: i = i + 1
        ._ChartBarType = Cells(PropertySheet, Id, i).Value: i = i + 1
        i = i + 1
        ._ChartBarPlanLineColor = Cells(PropertySheet, Id, i).Value
            i = i + 1
        ._ChartBarPlanFillColor = Cells(PropertySheet, Id, i).Value
            i = i + 1
        ._ChartBarActLineColor = Cells(PropertySheet, Id, i).Value
            i = i + 1
        ._ChartBarActFillColor = Cells(PropertySheet, Id, i).Value
            i = i + 1
        i = i + 1
        ._ChartHolidayColor = Cells(PropertySheet, Id, i).Value
            i = i + 1
        i = i + 1
        ._DrawProgressLine = Cells(PropertySheet, Id, i).Value
            i = i + 1
        ._ProgressLineWeight = Cells(PropertySheet, Id, i).Value
            i = i + 1
        ._ProgressLineColor = Cells(PropertySheet, Id, i).Value
            i = i + 1
        i = i + 1
        ._CategorizeType = Cells(PropertySheet, Id, i).Value
            i = i + 1
        ._SortType = Cells(PropertySheet, Id, i).Value: i = i + 1
        ._PrintAllItems = Cells(PropertySheet, Id, i).Value: i = i + 1
        ._PrintNotCompletedItem = Cells(PropertySheet, Id, i).Value
            i = i + 1
        ._InsertSpaceBetweenCategory = Cells(PropertySheet, Id, i).Value
            i = i + 1
        ._PrintLabel = Cells(PropertySheet, Id, i).Value: i = i + 1
        ._CalculateStatus = Cells(PropertySheet, Id, i).Value: i = i + 1
        ._CalculateTimesWithoutHoliday = _
            Cells(PropertySheet, Id, i).Value
            i = i + 1
        i = i + 1
        ._MileStoneWeight = Cells(PropertySheet, Id, i).Value: i = i + 1
        i = i + 1
        ._UseOptionalNote = Cells(PropertySheet, Id, i).Value: i = i + 1
        
    End With
    
End Function

そして、mdlMain.Initialize関数に下記を追加します。

PropertySheetName = "プロパティ"
PropertySheet = Sheets(PropertySheetName)
スポンサーサイト

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

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