Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
20日以降であれば *月分と表示するがしたいです。
投稿日時: 19/10/10 12:12:52
投稿者: y

すいません、教えてください。
 
20日締で、例えば 6/19 → 6月分
         6/21 → 7月分
と表示したいのですが、うまくいきません。
 
D列 に 日付 2019/6/19
P列 に *月分と表示したいです。
よろしくお願いいたします。
 
Dim zc As Worksheet
Dim ze As Long
Dim zf As Long
 
Set zc = Worksheets("Data")
 
On Error Resume Next
For ze = 1 To Cells(Rows.Count, 1).End(xlUp).Row
zf = Range(ze, "D").Value = Day(Date)
If zf < 21 Then
Range(ze, "P") = DateAdd("m", 0, Cells(ze, "D"))
Else
Range(ze, "P") = DateAdd("m", 1, Cells(ze, "D"))
On Error GoTo 0
End If
Next ze
End Sub

回答
投稿日時: 19/10/10 14:48:53
投稿者: sk

引用:
20日締で、例えば 6/19 → 6月分
         6/21 → 7月分
と表示したい

引用:
Dim zc As Worksheet
Dim ze As Long
Dim zf As Long
  
Set zc = Worksheets("Data")
  
On Error Resume Next
For ze = 1 To Cells(Rows.Count, 1).End(xlUp).Row
zf = Range(ze, "D").Value = Day(Date)
If zf < 21 Then
Range(ze, "P") = DateAdd("m", 0, Cells(ze, "D"))
Else
Range(ze, "P") = DateAdd("m", 1, Cells(ze, "D"))
On Error GoTo 0
End If
Next ze

Dim zc As Worksheet
Dim ze As Long
Dim zf As Long
Dim zg As Date
  
Set zc = Worksheets("Data")
  
With zc
    For ze = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
        If IsDate(.Cells(ze, "D").Value) Then
            zg = CDate(.Cells(ze, "D").Value)
            zf = Day(zg)
            If zf < 21 Then
                .Cells(ze, "P") = Month(zg) & "月分"
            Else
                .Cells(ze, "P") = Month(DateAdd("m", 1, zg)) & "月分"
            End If
        Else
            .Cells(ze, "P") = ""
        End If
    Next ze
End With
 
----------------------------------------------------------------
 
以上のように修正なさればよろしいのではないかと。

回答
投稿日時: 19/10/10 16:10:50
投稿者: WinArrow
投稿者のウェブサイトに移動

回答ではレスです。
 

引用:

20日締で、例えば 6/19 → 6月分
          6/21 → 7月分

 
例として挙げたので、問題はないが、
肝心の6/20は、どうするの?
という説明を付加したほうがよいでしょうね・・・
 
あと
>zf = Range(ze, "D").Value = Day(Date)
こんな命令ないと思うが、、、
ステップ実行すれば、意図する「値」が「zf」に入っているかすぐわかります。

投稿日時: 19/10/10 16:16:13
投稿者: y

sk様
 
教えていただいたとおり変更しましたら、できました!
ありがとうございました。
もっと、勉強しないとと反省しました。
本当に、助かりました。