¦U¦ì¤j¤j¡A½Ð°ÝUserFormªí³æ¦p¦óŪ¨ú¤lªí³æ
- ©«¤l
- 1422
- ¥DÃD
- 40
- ºëµØ
- 0
- ¿n¤À
- 1446
- ÂI¦W
- 0
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Excel 2010 & 2016
- ¾\ŪÅv
- 50
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW
- µù¥U®É¶¡
- 2020-7-15
- ³Ì«áµn¿ý
- 2024-3-29
|
¦^´_ 5# ã´£³¡ªL
ÁÂÁ wsx1130«e½úµoªí¦¹¥DÃD»P½d¨Ò
ÁÂÁ 㴣³¡ªL«e½ú«ü¾É
¾Ç²ß¦Ûqªí³æ¬O¥t¤@Ó½dÃ¥ªº¾Ç°Ý,ÁÂÁ«e½ú
«ö«ö¶s Åã¥ÜUserForm1:
Private Sub TextBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'¡ôMouseDown¡BMouseUp ¨Æ¥ó
'https://learn.microsoft.com/zh-tw/office/vba/language/reference/user-interface-help/mousedown-mouseup-events
'«Å§iÅܼÆ:Button¬Oµu¾ã¼Æ,Shift¬Oµu¾ã¼Æ,X¬O³æºë«×¯BÂI¼Æ,Y¬O³æºë«×¯BÂI¼Æ
UserForm2.Show
'¡ôÅã¥Ü¦WºÙ¬° UserForm2 ¦Ûqªí³æ
TextBox1.Text = xDate
'¡ô¿é¤Jµ¡¤å¦rÅã¥Ü xDateÅܼƦ^¶ÇªºÈ
End Sub
ÂI¤JUserForm1¿é¤Jµ¡,¸õ¥X·í¤ë¤ë¾ä UserForm2
|
|
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y
|
|
|
|
|
- ©«¤l
- 1422
- ¥DÃD
- 40
- ºëµØ
- 0
- ¿n¤À
- 1446
- ÂI¦W
- 0
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Excel 2010 & 2016
- ¾\ŪÅv
- 50
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW
- µù¥U®É¶¡
- 2020-7-15
- ³Ì«áµn¿ý
- 2024-3-29
|
Initialize ¨Æ¥ó
USERFORM2_¤ë¥÷¤U©Ô²M³æ:
USERFORM2_¦~¥÷¤U©Ô²M³æ:
Option Explicit
Dim i&
'¡ô«Å§i¼Ò²ÕÅܼÆ:i¬Oªø¾ã¼Æ
Private Sub UserForm_Initialize()
'¡ôInitialize ¨Æ¥ó,·|¦b¸ü¤Jª«¥ó¤§«á¦ýÅã¥Ü¤§«eµo¥Í¡C
CB_Yr = Year(Date)
'¡ô¥OCB_Yr¤U©Ô¦¡²M³æ¤è¶ôÅã¥Ü ¥H¤µ¤Ñ¤é´Á§PÂ_¥Xªº 4½X¦è¤¸¦~¤À
For i = 1 To 12
'¡ô³]¶¶°j°é!i±q1¨ì12
CB_Mth.AddItem Application.Text(i, "[DBNum1]d¤ë")
'¡ô¥OCB_Mth¤U©Ô¦¡²M³æ¤è¶ô¥[¤J °j°é¼ÆÂà¤p¼g¤ë¥÷¤å¦r¦r¦êªº²M³æ¶µ¥Ø
'Text()·|¶Ç¦^«ü©w¤§ª«¥óªº®æ¦¡¤Æ¤å¦r¡C °ßŪªº String
'[DBNum1]:¤¤¤å¤p¼g ,[DBNum2]:¤¤¤å¤j¼g,¤j¤p¼gn¦Û¤v¸Õ¤~ª¾¹D
Next i
For i = -20 To 20
'¡ô³]¶¶°j°é!i±q-20¨ì20
CB_Yr.AddItem CB_Yr + i
'¡ô¥OCB_Yr¤U©Ô¦¡²M³æ¤è¶ô¥[¤J °j°é¼Æ¥[¤WCB_YrȲ£¥Íªº41Ó¦~¥÷¤å¦r¦r¦êªº²M³æ¶µ¥Ø
Next i
'ÁöµM¼W¥[¤F¦hÓ²M³æ¶µ¥Ø,¦ý¤£¼vÅT¤@¶}©lªºÅã¥Ü(¥H¤µ¤Ñ¤é´Áªº¦~¥÷)
CB_Mth = Application.Text(Date, "[DBNum1]m¤ë")
'¡ô¥OCB_Mth¤U©Ô¦¡²M³æ¤è¶ôÅã¥Ü ¥H¤µ¤Ñ¤é´Á§PÂ_¥Xªº ¤p¼g¤ë¥÷¤å¦r¦r¦ê
Call Build_Calendar
'¡ô°õ¦æ Build_Calendar°Æµ{¦¡
End Sub
Private Sub CB_Mth_Change()
'¡ôCB_Mth¤U©Ô¦¡²M³æ¤è¶ô_Change ¨Æ¥ó
'https://learn.microsoft.com/zh-tw/office/vba/language/reference/user-interface-help/change-event
If UserForm2.Caption Like "*####*" Then Call Build_Calendar
'¡ô¦pªG UserForm2¦Ûqªí³æ ¼ÐÃDµ¡Åã¥Ü¤å¦r ¥]§t4Ó³sÄòªº¼Æ¦r!´N°õ¦æ Build_Calendar°Æµ{¦¡
End Sub
Private Sub CB_Yr_Change()
'¡ôCB_Yr¤U©Ô¦¡²M³æ¤è¶ô_Change ¨Æ¥ó
If UserForm2.Caption Like "*####*" Then Call Build_Calendar
'¡ô¦pªG UserForm2¦Ûqªí³æ ¼ÐÃDµ¡Åã¥Ü¤å¦r ¥]§t4Ó³sÄòªº¼Æ¦r!´N°õ¦æ Build_Calendar°Æµ{¦¡
End Sub |
|
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y
|
|
|
|
|
- ©«¤l
- 1422
- ¥DÃD
- 40
- ºëµØ
- 0
- ¿n¤À
- 1446
- ÂI¦W
- 0
- §@·~¨t²Î
- Windows 7
- ³nÅ骩¥»
- Excel 2010 & 2016
- ¾\ŪÅv
- 50
- ©Ê§O
- ¨k
- ¨Ó¦Û
- ¥xÆW
- µù¥U®É¶¡
- 2020-7-15
- ³Ì«áµn¿ý
- 2024-3-29
|
¥»©«³Ì«á¥Ñ Andy2483 ©ó 2022-12-27 11:10 ½s¿è
¦A¦¸ÁÂÁ 㴣³¡ªL«e½ú«ü¾É
«ö¶sµù¸Ñ:
«ö«ö¶s«áµ²ªG:
Private Sub Build_Calendar()
Dim Y0 As Date, Y1 As Date, Y2 As Date, Y3 As Date, Fb, Fc, Fu, Fs, Bc
'¡ô«Å§iÅܼÆ:(Y0,Y1,Y2,Y3)¬O¤é´ÁÅܼÆ,¨ä¥L¬O³q¥Î«¬ÅܼÆ
Y1 = DateSerial(CB_Yr, CB_Mth.ListIndex + 1, 1)
'¡ô¥OY1³o¤é´ÁÅܼƬO DateSerial(yyyy,m,d) ²Õ¦X¥X·Qnªº¦è¤¸¦~/¤ë/¤é(yyyy/m/d)(¤ëªì¤é)
'CB_Mth.ListIndex + 1 ªº·N«ä¥Î²qªº:CB_Mth¤U©Ô¦¡²M³æ¤è¶ôÅã¥ÜÈ©Ò¦bªº²M³æ¯Á¤Þ¦ì¸m,¦Ó¨ä²M³æ¯Á¤Þ¬O0~11 (²qªº!)
'DateSerial ¨ç¼Æ
'https://learn.microsoft.com/zh-tw/office/vba/language/reference/user-interface-help/dateserial-function
'ListIndex ÄÝ©Ê,ÃѧO ListBox ©Î ComboBox ¤¤¥Ø«e¿ï¨úªº±M®×¡C
'https://learn.microsoft.com/zh-tw/office/vba/language/reference/user-interface-help/listindex-property
Y2 = DateAdd("m", 1, Y1) - 1
'¡ô¥OY2³o¤é´ÁÅܼƬO DateAdd(m´«ºâªº¤Ñ¼Æ:28¡B29¡B30©Î31,1m,Y1ÅܼƤé´Á¬°°ò·Ç¤é)(yyyy/m/d)(¤ë§À¤é)
'https://learn.microsoft.com/zh-tw/office/vba/language/reference/user-interface-help/dateadd-function
Y0 = Y1 - (Y1 - 1) Mod 7
'¡ô¥OY0¬O [Y1ÅܼÆ(¤ëªì¤é) - Y1ÅܼÆ(¤ëªì¤é)ªº«e¤@¤Ñ °£7 ªº¾l¼Æ(¥ý°£¥X¾l¼Æ¦A¬Û´î)] ªº¤é´Á
'³o¬Onºâ¤ë¾äªº²Ä¤@¤Ñ
For i = 1 To 42
'¡ô³]¶¶°j°é!i±q1¨ì42
Y3 = Y0 + i - 1
'¡ô¥OY3³o¤é´ÁÅܼƬO ¤ë¾äªº²Ä¤@¤Ñ+i°j°é¼Æ -1
Fb = True
'¡ô¥OFb³o³q¥ÎÅܼƬO ¥¬ªLÈ True
Fs = 12
'¡ô¥OFs³o³q¥ÎÅܼƬO 12
Fu = False
'¡ô¥OFu³o³q¥ÎÅܼƬO ¥¬ªLÈ False
Fc = &H80000012
'¡ô¥OFu³o³q¥ÎÅܼƬO Windows «ö¶s¤Wªº¤å¦rÃC¦â¥N¸¹
'¨t²ÎÃC¦â±`¶q
'·j´M VBA ¨t²ÎÃC¦â±`¶q
Bc = &H8000000F
'¡ô¥OBc¬O BackColor ÄݩʪºÈ³]©w¬° Windows ªí³æ¤¤ªº¹w³]È
'https://learn.microsoft.com/zh-tw/office/vba/api/visio.viewer.backcolor
If Y3 Mod 7 < 2 Then Fc = &HFF
'¡ô¦pªGY3¤é´ÁÅܼư£7«áªº¾l¼Æ <2 ,´N¥OFu³o³q¥ÎÅܼƬO 255
'https://learn.microsoft.com/zh-tw/office/vba/language/reference/user-interface-help/hex-function
If Y3 < Y1 Or Y3 > Y2 Then
'¡ô¦pªGY3¤é´ÁÅÜ¼Æ < Y1¤é´ÁÅܼÆ(¤ëªì¤é) ©Î Y3¤é´ÁÅÜ¼Æ >Y1¤é´ÁÅܼÆ(¤ë§À¤é),
Fb = False
'¡ô¥OFb³o³q¥ÎÅܼƬO ¥¬ªLÈ False
Fu = True
'¡ô¥OFu³o³q¥ÎÅܼƬO ¥¬ªLÈ True
Fs = 11
'¡ô¥OFs³o³q¥ÎÅܼƬO 11
Bc = &H808080
'¡ô¥OBc³o³q¥ÎÅܼƬO Windows ¨t²ÎÃC¦â¥N¸¹(¦Ç¦âªº)
End If
With UserForm2("D" & i)
'¡ô¥H¤U¬OÃö©óUserForm2 42Ó¤é´Á«ö¶sªºµ{§Ç
.Font.Bold = Fb '²ÊÅé
.Font.Size = Fs '¦rÅé¤j¤p
.Font.Underline = Fu '«D¥»¤ë-¥[©³½u
.ForeColor = Fc '¦rÅéÃC¦â
.BackColor = Bc 'I´ºÃC¦â
.Caption = Day(Y3)
'¡ô¥O«ö¶sÅã¥Ü¤å¦r¬O Day()Â^¨úY3¤é´ÁÅÜ¼Æ ¤é¼Æ¦r
.ControlTipText = Format(Y3, "yyyy/mm/dd")
'¡ô¥O«ö¶sµù¸Ñ¬O Y3¤é´ÁÅܼƥH yyyy/mm/dd Åã¥Ü
'ControlTipText ÄÝ©Ê
'https://learn.microsoft.com/zh-tw/office/vba/language/reference/user-interface-help/controltiptext-property
End With
Next i
UserForm2.Caption = " " & CB_Yr.Value & "¦~" & CB_Mth.Text
'¡ô¥OUserForm2¼ÐÃD¬O ªÅ¥Õ¦r¤¸³s±µ CB_Yr¤U©Ô¦¡²M³æ¤è¶ôȳs±µ "¦~" ,³Ì«á³s±µ CB_Mth¤U©Ô¦¡²M³æ¤è¶ôÈ
End Sub
Sub ¬Û¤Ïªº_¤Q¤»¶i¦ì()
MsgBox &HFF
MsgBox &HA
MsgBox &HAA
End Sub
Private Sub D1_Click()
xDate = D1.ControlTipText
'¡ô³o¸ÌxDate = D2.ControlTipText »Ýn§ï¬°,xDate = D1.ControlTipText
Unload Me
End Sub
~~~
Private Sub D42_Click()
xDate = D42.ControlTipText
Unload Me
End Sub |
|
¥Î¦æ°Ê¸Ë¸mÂsÄý½×¾Â¾Ç²ß«Ü¤è«K,ÁÂÁ½׾¸gÀç¹Î¶¤
½Ð¤j®a¤@°_¤W½×¾Â¨Ó¥æ¬y
|
|
|
|
|