レッスン1(中級)時間の計算と串刺し計算

それではこのシートをVBAで操作出来るようにプログラムを書いてみましょう。

森山・井上・杉島シートにコピーします。


Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

nrow = Target.Row

ncol = Target.Column

If ncol = 3 Then Exit Sub

If nrow < 7 Or nrow > 13 Then Exit Sub

kei = 0: n = 0

Application.EnableEvents = False

For i = 7 To 13

   Cells(i, 5) = (Cells(i, 4) - Cells(i, 2)) * 24

   If Cells(i, 2) = "" Or Cells(i, 4) = "" Then Cells(i, 5) = 0

   Cells(i, 6) = Cells(i, 5) * Cells(6, 9)

   kei = kei + Cells(i, 6)

   If Cells(i, 5) <> 0 Then

      n = n + 1

   End If

Next i

Cells(14, 6) = kei

Cells(7, 9) = n

Application.EnableEvents = True

End Sub

では次に合計シートの集計をシートを開いた時に発生するイベントプロシージャ

Worksheet_Activate()に書き込みます。


Private Sub Worksheet_Activate()

Dim WB As Workbook

Dim WS1 As Worksheet

Set WB = ActiveWorkbook

Row = 7

col = 6

wsRow = 4

wsCol = 3

For i = 1 To 7

   gokei = 0

   countN = 0

   For j = 1 To 3

      Set WS1 = WB.Worksheets(j)

      kei = WS1.Cells(Row, col)

      If kei <> 0 Then countN = countN + 1

      gokei = gokei + kei

   Next j

   Row = Row + 1

   Cells(wsRow, wsCol) = gokei

   Cells(wsRow, 2) = countN

   wsRow = wsRow + 1

Next i

gokei = 0: kei = 0: countN = 0

For i = 4 To wsRow - 1

   kei = Cells(i, wsCol)

   countN = countN + Cells(i, 2)

   gokei = gokei + kei

Next i

Cells(wsRow + 1, wsCol) = gokei

Cells(wsRow + 1, 2) = countN

End Sub


■ここで問題です。

■もう1名増やしてみましょう。

■がんばってね( ^)o(^ )

Excel関数で計算、3つのシートを合計する計算式も覚えられるよ


リックパソコン京都山科教室

オンラインで受講が出来ます。1時間2500円のワンポイントレッスンです。

0コメント

  • 1000 / 1000