VB简单的万年历

时间:2022-10-05 01:45:15 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
先建立工程,然后为窗体放置MSFlexGrid控件,设置窗体form1的属性borderstyle=0(没有轮廓线)

Option Explicit

Private Const cNum = 7 Private Const rNum = 7 Dim obj As Object Dim yr, mon As Integer

Private Sub Form_Load() Set obj = MSFlexGrid1

obj.Move 0, 0, Form1.Width, Form1.Height obj.Clear setformat sethead

yr = Year(Date) mon = Month(Date) yt

End Sub

Public Sub setformat() '设定表格长宽 Dim i, w, h As Integer obj.ScrollBars = 0

obj.FixedCols = 0 '默认是固定行,列为一 obj.Cols = cNum obj.Rows = rNum

w = (obj.Width - 10) / cNum h = obj.Height / rNum

For i = 0 To cNum - 1 obj.ColWidth(i) = w obj.RowHeight(i) = h obj.FixedAlignment(i) = 2 Next End Sub

Public Sub sethead() '设定表头内容 Dim i, j As Integer

Dim dayname(cNum - 1) As String


dayname(0) = "星期日" dayname(1) = "星期一" dayname(2) = "星期二" dayname(3) = "星期三" dayname(4) = "星期四" dayname(5) = "星期五" dayname(6) = "星期六"

obj.Row = 0

For i = 0 To cNum - 1 obj.Col = i

obj.Text = dayname(i)

obj.CellForeColor = RGB(255, 0, 0) Next

End Sub

Public Sub yt() '往表格里填日期 Dim i, firstday, num_day As Integer Dim d As Date

firstday = DateSerial(yr, mon, 1) num_day = DatePart("w", firstday)

obj.Row = 1

obj.Col = num_day - 1

For i = 1 To 31

d = DateSerial(yr, mon, i)

If Month(d) <> mon Then Exit For Else

If obj.Col = 6 And i <> 1 Then obj.Row = obj.Row + 1 obj.Col = 0

ElseIf i <> 1 Then obj.Col = obj.Col + 1 End If

obj.Text = i


If Day(Date) = i Then obj.CellBackColor = RGB(255, 255, 0) End If

If obj.Col = 0 And Day(Date) = i Then

obj.CellBackColor = RGB(255, 0, 0) End If Next

obj.Row = rNum - 1 obj.Col = cNum - 2 obj.Text = yr & ""

obj.Col = cNum - 1 obj.Text = mon & ""

End Sub


本文来源:https://www.wddqw.com/doc/318df17d168884868762d69c.html