Excel VBA質問箱 IV

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

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


4465 / 13646 ツリー ←次へ | 前へ→

【56498】MsgBox nakata 08/6/19(木) 15:48 質問[未読]
【56499】Re:MsgBox kanabun 08/6/19(木) 16:04 発言[未読]
【56502】Re:MsgBox nakata 08/6/19(木) 16:29 質問[未読]
【56500】Re:MsgBox マクロマン 08/6/19(木) 16:08 発言[未読]
【56507】Re:MsgBox Yuki 08/6/19(木) 16:53 発言[未読]
【56511】Re:MsgBox nakata 08/6/19(木) 17:38 お礼[未読]

【56498】MsgBox
質問  nakata  - 08/6/19(木) 15:48 -

引用なし
パスワード
   Sub Auto_Open()
  MsgBox "今日は" & Format(Date, "yyyy年mm月dd日(aaa)") & "です。" _
      , vbQuestion, "元気があればなんでも出来る"
End Sub
上記に下記条件でデータを追加したいのですが
F37セルにに日付データ"2008/6/30"が記入してあるとします。
このデータと今日を比較しMsgBoxに"あと残り○○日"と表示し
また、指定日を過ぎてしまった場合は"○○日超過です"と表示したいのですが可能でしょうか
条件としてはF37セルにデータが入力済みの場合表示させたいのですが
(未入力の場合は表示させない)
よろしくお願いします。

【56499】Re:MsgBox
発言  kanabun  - 08/6/19(木) 16:04 -

引用なし
パスワード
   ▼nakata さん:
こんにちは

こんな感じですかね?
'---------------------
 Dim c As Range
 Dim diff As Long
 
 Set c = Worksheets(1).[F37]
 If IsDate(c.Value) Then
   diff = CLng(Date) - c.Value2
   Select Case diff
    Case Is < 0
      MsgBox "あと残り" & -diff & "日"
    Case Is > 0
      MsgBox diff & "日超過です"
   End Select
 End If

今日が当日だった場合は入れてませんが

【56500】Re:MsgBox
発言  マクロマン  - 08/6/19(木) 16:08 -

引用なし
パスワード
   またまた横から失礼します。

今日の日付けは
Date
で取得できます。
指定日から今日の日付けを引き算すれば過ぎているか、
本日か、過ぎていないか判定できます。

また、セルの値が
""
だったら、ブランクか、あるいは数式の結果が""
だと判定できます。
ワークシート関数だったら
ISBLANK
というのがあるけど
WorkSheetFunction.Isblank
とは出来ないみたいです。

【56502】Re:MsgBox
質問  nakata  - 08/6/19(木) 16:29 -

引用なし
パスワード
   ▼kanabun さん:
ありがとうございます。
Auto_Openで表示させているのですが
未入力の場合"今日は" & Format(Date,・・・の部分だけは
表示させたいのですが、出来ませんか?
よろしくお願いします。

Sub Auto_Open()
'==========================================================
  Dim c As Range
  Dim diff As Long

 Set c = Worksheets(1).[F37]
 If IsDate(c.Value) Then
   diff = CLng(Date) - c.Value2
   Select Case diff
    Case Is < 0
      MsgBox "今日は" & Format(Date, "yyyy年mm月dd日(aaa)") & "です。" _
      & vbCrLf & vbCrLf & "リミット日まであと残り" & -diff & "日。", vbQuestion, "元気があればなんでも出来る"
    Case Is > 0
     MsgBox "今日は" & Format(Date, "yyyy年mm月dd日(aaa)") & "です。" _
     & vbCrLf & vbCrLf & "リミット日から" & diff & "日超過です。", vbQuestion, "元気があればなんでも出来る"
    Case Is = 0
     MsgBox "今日は" & Format(Date, "yyyy年mm月dd日(aaa)") & "です。" _
     & vbCrLf & vbCrLf & "" & "リミット日は本日ですよ。", vbQuestion, "元気があればなんでも出来る"
   End Select
  End If
 End If
End Sub

>
>こんな感じですかね?
>'---------------------
> Dim c As Range
> Dim diff As Long
> 
> Set c = Worksheets(1).[F37]
> If IsDate(c.Value) Then
>   diff = CLng(Date) - c.Value2
>   Select Case diff
>    Case Is < 0
>      MsgBox "あと残り" & -diff & "日"
>    Case Is > 0
>      MsgBox diff & "日超過です"
>   End Select
> End If
>
>今日が当日だった場合は入れてませんが

【56507】Re:MsgBox
発言  Yuki  - 08/6/19(木) 16:53 -

引用なし
パスワード
   ▼nakata さん:
>Sub Auto_Open()
>  MsgBox "今日は" & Format(Date, "yyyy年mm月dd日(aaa)") & "です。" _
>      , vbQuestion, "元気があればなんでも出来る"
>End Sub
>上記に下記条件でデータを追加したいのですが
>F37セルにに日付データ"2008/6/30"が記入してあるとします。
>このデータと今日を比較しMsgBoxに"あと残り○○日"と表示し
>また、指定日を過ぎてしまった場合は"○○日超過です"と表示したいのですが可能でしょうか
>条件としてはF37セルにデータが入力済みの場合表示させたいのですが
>(未入力の場合は表示させない)
>よろしくお願いします。

こんな風で

Sub Auto_Open()
  Dim lngDt  As Long
  Dim strMsg As String
  
  If IsDate(Range("F37").Value) Then
    lngDt = DateDiff("d", Date, Range("F37").Value)
    Select Case lngDt
      Case 0
        strMsg = "本日です。"
      Case Is > 0
        strMsg = "あと残り " & lngDt & "日"
      Case Is < 0
        strMsg = lngDt * -1 & " 日超過です。"
    End Select
  Else
    strMsg = ""
  End If
  MsgBox "今日は" & Format(Date, "yyyy年mm月dd日(aaa)") & "です。" & _
      vbCrLf & strMsg, vbQuestion, "元気があればなんでも出来る"
End Sub

【56511】Re:MsgBox
お礼  nakata  - 08/6/19(木) 17:38 -

引用なし
パスワード
   ▼Yuki さん:
ありがとうございました。
思った通り表示できました
感謝!です。

>Sub Auto_Open()
>  Dim lngDt  As Long
>  Dim strMsg As String
>  
>  If IsDate(Range("F37").Value) Then
>    lngDt = DateDiff("d", Date, Range("F37").Value)
>    Select Case lngDt
>      Case 0
>        strMsg = "本日です。"
>      Case Is > 0
>        strMsg = "あと残り " & lngDt & "日"
>      Case Is < 0
>        strMsg = lngDt * -1 & " 日超過です。"
>    End Select
>  Else
>    strMsg = ""
>  End If
>  MsgBox "今日は" & Format(Date, "yyyy年mm月dd日(aaa)") & "です。" & _
>      vbCrLf & strMsg, vbQuestion, "元気があればなんでも出来る"
>End Sub

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