VBA
1Sub 練習問題12() 2 Dim i As Long 3 Dim intW As Integer 4 Range("G2:I8").ClearContents 5 For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row 6 intW = Weekday(DateSerial(Cells(i, 1), Cells(i, 2), Cells(i, 3)), vbMonday) 7 Cells(intW + 1, 7) = Cells(intW + 1, 7) + Cells(i, 4) 8 Cells(intW + 1, 8) = Cells(intW + 1, 8) + 1 9 Next 10 For i = 1 To 7 11 Cells(i + 1, 9) = Cells(i + 1, 7) / Cells(i + 1, 8) 12 Next 13End Sub
上記のコードの7行目「Cells(intW + 1, 7) = Cells(intW + 1, 7) + Cells(i, 4)」の動きの理解が出来ずに行き詰っています。
ステップインを実行していくと、数値が現れるセルは(8, 7)なのですが、intW + 1の指定でなぜ8になるのかという事を教えていただきたいです。(引数vbMondayを何かしらの形で利用しているというのは想像できるのですが、、、)
宜しくお願いします。
参照ページ
1.7行目というのは「Cells(intW + 1, 7) = Cells(intW + 1, 7) + Cells(i, 4)」のことですか?「Cells(intW + 1, 8) = Cells(intW + 1, 8) + 1」のことですか?
2.「テストで実際に値が現れる」とは何のことですか?
質問のコードは問題の答えでしょうか? であれば、問題文もあわせて提示してください。
また、「Cells(i, 1), Cells(i, 2), Cells(i, 3)」に入力されているものが何かも追記願います。
ごもっともなご指摘ありがとうございます。
修正の方を行っておきました。
よろしくお願い致します!
回答1件
あなたの回答
tips
プレビュー