Excel VBA質問箱 IV

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

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


11 / 13657 ツリー ←次へ | 前へ→

【82413】weekdayを使用した合計金額と曜日ごとの日数の出し方 NANAMI 24/12/7(土) 23:43 質問[未読]
【82414】Re:weekdayを使用した合計金額と曜日ごとの... マナ 24/12/8(日) 9:21 発言[未読]
【82415】Re:weekdayを使用した合計金額と曜日ごとの... NANAMI 24/12/9(月) 16:56 お礼[未読]

【82413】weekdayを使用した合計金額と曜日ごとの...
質問  NANAMI E-MAIL  - 24/12/7(土) 23:43 -

引用なし
パスワード
   A列とB列、C列にそれぞれ、年月日が分けて入力されており、日にちごとに売上金額が記載されている表です。それを、曜日ごとに売上金額の合計と日数、曜日ごとの売り上げ平均を別の表にまとめようとしています。


Sub 練習問題12()
  Dim i As Long
  Dim intW As Integer
  Range("G2:I8").ClearContents
  For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row
    intW = Weekday(DateSerial(Cells(i, 1), Cells(i, 2), Cells(i, 3)), vbMonday)
    Cells(intW + 1, 7) = Cells(intW + 1, 7) + Cells(i, 4)
    Cells(intW + 1, 8) = Cells(intW + 1, 8) + 1
  Next
  For i = 1 To 7
    Cells(i + 1, 9) = Cells(i + 1, 7) / Cells(i + 1, 8)
  Next
End Sub

上記答えの、
    Cells(intW + 1, 7) = Cells(intW + 1, 7) + Cells(i, 4)
    Cells(intW + 1, 8) = Cells(intW + 1, 8) + 1
  Next
  For i = 1 To 7
    Cells(i + 1, 9) = Cells(i + 1, 7) / Cells(i + 1, 8)
の部分がすべてわからないのですが、特に、「Cells(intW + 1, ●)」はどういう意味でしょうか?
なにを示しているのでしょうか?

VBAを我流で勉強し始めて一週間程度です。
ご回答いただけると幸いです。

【82414】Re:weekdayを使用した合計金額と曜日ごと...
発言  マナ  - 24/12/8(日) 9:21 -

引用なし
パスワード
   ▼NANAMI さん:

1)

>intW = Weekday(DateSerial(Cells(i, 1), Cells(i, 2), Cells(i, 3)), vbMonday)

intW は、月曜日なら1、火曜日なら2、…、日曜日なら7


したがって、

>「Cells(intW + 1, ●)」

月曜日なら2行目、火曜日なら3行目、…、日曜日なら8行目に
集計結果を出すということ。


2)

>Cells(intW + 1, 7) = Cells(intW + 1, 7) + Cells(i, 4)

7列目(行は曜日別)に、4列目の値(売上金額)を加算

>Cells(intW + 1, 8) = Cells(intW + 1, 8) + 1

8列目(行は曜日別)に、1を加算


これすべてのデータで繰り返すことで、
売上の合計と日数を曜日別に行を変えて出力しています。


   

【82415】Re:weekdayを使用した合計金額と曜日ごと...
お礼  NANAMI E-MAIL  - 24/12/9(月) 16:56 -

引用なし
パスワード
   ▼マナ さん:
>▼NANAMI さん:
>
>1)
>
>>intW = Weekday(DateSerial(Cells(i, 1), Cells(i, 2), Cells(i, 3)), vbMonday)
>
>intW は、月曜日なら1、火曜日なら2、…、日曜日なら7
>
>
>したがって、
>
>>「Cells(intW + 1, ●)」
>
>月曜日なら2行目、火曜日なら3行目、…、日曜日なら8行目に
>集計結果を出すということ。
>
>
>2)
>
>>Cells(intW + 1, 7) = Cells(intW + 1, 7) + Cells(i, 4)
>
>7列目(行は曜日別)に、4列目の値(売上金額)を加算
>
>>Cells(intW + 1, 8) = Cells(intW + 1, 8) + 1
>
>8列目(行は曜日別)に、1を加算
>
>
>これすべてのデータで繰り返すことで、
>売上の合計と日数を曜日別に行を変えて出力しています。
>
>
>   


問題の出題元よりもわかりやすい解説を提示いただきありがとうございました。
大変助かりました。ありがとうございました。

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