サンプル投稿用掲示板 VB2005 〜 用トップページ VB6.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
------------------------------------------------------------------------ 上記の実行結果の画像を添付しておきます。 (画像をクリックすると元のサイズで表示されます。)
-
|