Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


21259 / 76738 ←次へ | 前へ→

【60881】UserFormで対象日が日曜であればその日を赤色にする
質問  Porta  - 09/3/19(木) 20:52 -

引用なし
パスワード
   今晩は…
日にちの検索を、以前に聞かせていただき貴重な回答をいただきました。
その後その検索をUserFormのスピンボタンで、また作成しています。
つまりスピンボタンで年・月・日を指定して、その対象日にジャンプさせる
という方法です。
年月日はA列の6行目(2009.03.01)から向こう8年分まで検索させています。
このような状態で、日にちが日曜日であればその日にちの数字を赤にしたいのですが、weekday関数を使って色替えを考えたのですが、日曜日がずれてしまいます。
対応方法をよろしくお願いします。コードは次の通りです。

Private Sub CommandButton1_Click()
 Dim dt As Date
 Dim r As Range
 Dim c As Range
 Dim ch
  ch = DateSerial(Label1, Label2, Label3)
 Set r = Range("A1", Cells(Rows.Count, "A").End(xlUp))
 Set c = r.Find(ch, Range("a1"), _
     xlFormulas, xlWhole, , xlPrevious)
 If Not c Is Nothing Then
  c.Activate
  MsgBox ch & " 日へジャンプしました", , "セル位置は" & c.Address(0, 0)
 Else
  MsgBox "その年月日はありません", vbExclamation
 End If
End Sub

Private Sub UserForm_Initialize()
Dim sund As Integer
With Me
  With .SpinButton1   '年
   .Max = Year(Date) + 8
   .Min = Year(Date)
  Label1 = Year(Date)
  End With
  With .SpinButton2   '月
   .Max = 12
   .Min = 1
  Label2 = Month(Date)
  End With
  With .SpinButton3   '日
   .Min = 1
   .Max = Day(DateSerial(Year(Date), Month(Date) + 1, 1 - 1))
  Label3 = Day(Date)  
  End With
    .Label4.Caption = "年"
    .Label5.Caption = "月"
    .Label6.Caption = "日"
End With
End Sub

Private Sub SpinButton1_Change()  
  Me.Label1 = Me.SpinButton1.Value
End Sub

Private Sub SpinButton2_Change()  
  Me.Label2 = Me.SpinButton2.Value
  Me.Label3 = Day(DateSerial(Label1, Label2 + 1, 1 - 1))
End Sub

Private Sub SpinButton3_Change()  
  Dim n As Integer
  Me.Label3 = Me.SpinButton3.Value
  With Me
   With .SpinButton3
    .Max = Day(DateSerial(Label1, Label2 + 1, 1 - 1))
   End With
  End With
   n = Weekday(DateSerial(Year(Label1), Month(Label2), Day(Label3)))
    If n <> 1 Then
     Me.Label3.ForeColor = RGB(0, 0, 0)
    Else
     Me.Label3.ForeColor = RGB(255, 0, 0)
    End If    
End Sub

'nの変数が当月ですと木曜日ですが4になり1ずれます、それだけでなく
'2年後の日にちでは更にずれるのですが、何故でしょうか。
'理由がわかりません。アドバイスお願いします。
1 hits

【60881】UserFormで対象日が日曜であればその日を赤色にする Porta 09/3/19(木) 20:52 質問
【60882】Re:UserFormで対象日が日曜であればその日... kanabun 09/3/19(木) 22:48 発言
【60889】Re:UserFormで対象日が日曜であればその日... Porta 09/3/20(金) 21:20 質問
【60892】Re:UserFormで対象日が日曜であればその日... kanabun 09/3/20(金) 22:34 発言
【60898】Re:UserFormで対象日が日曜であればその日... Porta 09/3/22(日) 13:54 お礼
【61166】Re:UserFormで対象日が日曜であればその日... Porta 09/4/14(火) 6:58 質問
【61167】Re:UserFormで対象日が日曜であればその日... kanabun 09/4/14(火) 8:35 発言

21259 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free