|
MOM さん こんばんは
もう直ぐマクロのとりこになりそうですね
やっと何がしたいが解った様な気がします。(本当かな?)
シートレイアウトは
A列に日付け、B列が8:00〜8:30、C列が8:30〜9:00 ・・・
8時間勤務ならQ列が16:30〜17:00 の16列 色付けするセルがある
というようなレイアウトでしょうか?
|8:00〜8:30|8:30〜9:00|9:00〜9:30|
1日|
2日|
プロジェクトウインドウ(多分、VBE画面の左側にあるシートがいくつかぶら下がった小窓)の計算したいシートをダブルクリックして、そこに貼り付けてください
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim Ans As Variant '実行/キャンセル 用
Dim rTmp As Range 'For Each 用
Dim i As Long '右クリックした行
Dim 赤個数 As Double '足し算用
Dim 黄個数 As Double '足し算用
Dim 青個数 As Double '足し算用
Dim 緑個数 As Long '足し算用
If Target.Column <> 18 Then Exit Sub 'R列じゃなかったら
Ans = MsgBox("確定しますか? 確定=OK ボタン / やり直し=キャンセル ボタン", vbOKCancel)
If Ans = 2 Then Exit Sub 'キャンセルボタンで終了
Cancel = True '??内緒!
i = Target.Row '右クリックした行(計算したい行)
For Each rTmp In Range("B" & i & ":Q" & i)
Select Case rTmp.Interior.ColorIndex
Case 3 ' 赤
赤個数 = 赤個数 + 0.5
Case 6 ' 黄色
黄個数 = 黄個数 + 0.5
Case 5 ' 青
青個数 = 青個数 + 0.5
Case 10 ' 緑
緑個数 = 緑個数 + 1
End Select
Next rTmp
Range("S" & i).Value = 赤個数
Range("T" & i).Value = 黄個数
Range("U" & i).Value = 青個数
Range("V" & i).Value = 緑個数 / 2 '他の案(最後に割る)
End Sub
上記は、右クリックした時に勝手に走るマクロです。
(シートモジュールに書いた右クリックイベントのマクロ)
他にも勝手に走るマクロ(イベント)がいっぱいあります。
私は、その日毎に計算されるほうが良いと思います。
一日の入力が終了したら、その日の行の R列 を右クリックして計算します。
*まったく違ってたらパスしてね!
それと >実は今一生懸命30日分作ったのですが処理が重そうなので
あのマクロも処理自体そんなにかわりません。マクロを書く労力は違いますけど・・・
りったさんのマクロ何処に書けば良いんでしょう?
興味とやる気はありますが、知識に・・・。
良かったら教えてください。
|
|