tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
勤怠表を作りたいのですが(VB6.0) ( No.0 )  [親スレッドへ]
日時: 2009/12/27 12:56
名前: 花ちゃん

***********************************************************************************
* カテゴリー:[日付・時刻][応用コード][]                                          *
* キーワード:カレンダ,出欠,グリッド,MSHFlexGrid,祭日,休日                        *
***********************************************************************************

元質問:勤怠表を作りたいのですが - kamurin   2004/03/26-11:06 No.8507

勤怠表を作りたいと思いまして、
Microsoft Calender Control9.0 を使いました。

見た目ですぐに、分かるようにしたかったので、勤怠状況(1日休み・午前半休・午後半休等)によって、Calenderの日付の部分を色分けしたいと思ったのです。
(例えば1日休み=赤・午前半休=緑・午後半休=黄)
プロパティをイロイロ触ったのですが、日にち単位で色を変える(1日は赤4日は緑とか)ことが出来なくて(分からなくて)質問しました。

---------------------------------------------------------------------------
私が作るなら - 花ちゃん  2004/03/26-22:50 No.8520
---------------------------------------------------------------------------

MSFlexGrid を使ってBMP 等を表示した方がいいかと思うのですが?
そうすれば、何人でも、何ヶ月分でも表示できるかと思います。

# 下記は完成品ではありません、私の考えの一部をコードに書いただけです。
 質問者にどのような感じになるのかをイメージして頂く為に書いただけなので、
 カレンダーの作成等の考え方の参考程度にはなるかと思い掲載しておきます。

Private Sub Command1_Click()
    Dim yy1  As Integer
    Dim mm1  As Integer
    Dim dMax As Integer
    Dim i    As Integer
    yy1 = "2004"
    mm1 = "4"
    dMax = Day(DateAdd("d", -1, DateAdd("m", 1, DateValue(yy1 & "/" & mm1))))
  
    With MSFlexGrid1
        .Cols = dMax + 1
        .FixedCols = 0
        .Rows = 5
        .FixedRows = 2
        For i = 1 To dMax
            .Col = i: .Row = 0
            .CellAlignment = flexAlignCenterCenter
            .Col = i: .Row = 1
            .CellAlignment = flexAlignCenterCenter
            .Col = i: .Row = 2
            .CellAlignment = flexAlignCenterCenter
    
            .TextMatrix(0, i) = i
            .TextMatrix(1, i) = Format$(yy1 & "/" & mm1 & "/" & CStr(i), "aaa")
            If .TextMatrix(1, i) = "日" Then
                .Col = i: .Row = 1
                .CellBackColor = vbRed
            End If
        Next i
            '休日の処理
            Dim Tbl(4) As String
            Dim AddDat   As Variant
            Tbl(4) = "3,10,17,24,29"
            AddDat = Split(Tbl(4), ",")
            For i = LBound(AddDat) To UBound(AddDat)
                .Col = AddDat(i): .Row = 1
                .CellBackColor = vbRed
            Next i

            .TextMatrix(2, 0) = "青木"
            .TextMatrix(2, 1) = "○"
            .TextMatrix(2, 2) = "○"
            .TextMatrix(2, 3) = "×"
            .TextMatrix(2, 4) = "△"
    End With
End Sub

------------------------------------------------------------------------
上記の実行結果の画像を添付しておきます。
(画像をクリックすると元のサイズで表示されます。)



 [スレッド一覧へ] [親スレッドへ]