先建立工程,然后为窗体放置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