• ベストアンサー

Excel VBA の Change イベントについて

お世話になります。 現在、勤務表をExcelで作成しています。 職務体系を 本社管理職=1 本社営業職=2 本社一般=3 交代勤務=4 通常勤務=5  の5種類に分けて、 交代勤務の人にだけシフト手当が出るようにしたいと考えています。 セル"S3"で職務体系をリストから選択し、 セル"U3"が1~5に自動的に変化した後の処理を書いてみましたが、 メッセージボックスの表示すらできずにいます。 どなたかご教授いただければ幸いです。 よろしくお願いいたします。 Private Sub Worksheet_Change(ByVal Target As Range) '交代勤務フラグ Dim 二直 As Long Dim 三直 As Long If Target.Address <> "$S$3" Then Exit Sub Else If Range("U3").Value > 1 And Range("U3").Value < 6 Then If ActiveSheet.Range("u3").Value = 5 Then ActiveSheet.Range("w11", "x11").Value = 0 MsgBox "2直、3直の件数は0です" Else 二直 = Application.WorksheetFunction.CountIf(Range("E8:E38"), Range("W10")) 三直 = Application.WorksheetFunction.CountIf(Range("E8:E38"), Range("X10")) Range("W11").Value = 二直 Range("X11").Value = 三直 MsgBox "2直の件数は" & 二直 & "です。3直の件数は" & 三直 & "です" End If End If End If End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • goo39
  • ベストアンサー率36% (13/36)
回答No.2

W11セルをロックしてシート保護をかけていませんか? ※違ってたらスルーして下さい。

hana_is
質問者

お礼

おっしゃる通り、シート保護をかけていました。。。OTL もう少し注意していればよかったことですね。 お騒がせして申し訳ありませんでした。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

一応、動きそうなコードですが……どこでエラーになっているのでしょうか? 何となく、セルU3の値が数値になっていない様な気がします。

hana_is
質問者

補足

早速のお返事ありがとうございます。 U3セルは数値でエクセルに入れてあり、 参照して表示させるようにしています。 エラーになるのは下記の部分です。 Private Sub Worksheet_Change(ByVal Target As Range) '交代勤務フラグ Dim 二直 As Long Dim 三直 As Long If Target.Address <> "$S$3" Then Exit Sub Else If Range("U3").Value > 1 And Range("U3").Value < 6 Then If ActiveSheet.Range("u3").Value = 5 Then ActiveSheet.Range("w11", "x11").Value = 0    ←エラー MsgBox "2直、3直の件数は0です" Else 二直 = Application.WorksheetFunction.CountIf(Range("E8:E38"), Range("W10")) 三直 = Application.WorksheetFunction.CountIf(Range("E8:E38"), Range("X10")) Range("W11").Value = 二直    ←エラー Range("X11").Value = 三直 MsgBox "2直の件数は" & 二直 & "です。3直の件数は" & 三直 & "です" End If End If End If End Sub 以上です。よろしくお願いいたします。

すると、全ての回答が全文表示されます。

関連するQ&A