Worksheet Change イベント 値を削除するとき何もしない | |
---|---|
[195405] Worksheet Change イベント 値を削除するとき何もしない- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ おおねこ -(2022/11/23(20:10)) □U R L/ ご教授お願い致します。 年末調整の保険料控除のエクセルシートを作成しています。保険料の旧保険料か新保険料か を入力忘れをするのでWorksheet change イベントで下記のようなマクロを作成したのですが 入力の時はよいのですが削除するときにも入力する時と同じボックスが出てしまします。 データを削除するときは何もしないとしたいのですがどのようにしたらよいのかわからないのでよろしくお願いいたします。 *************************************************************************************************************************** Private Sub Worksheet_Change(ByVal Target As Range) Dim rc As Integer If Intersect(Target, Sheet3.Range("Z18:Z21, Z33:Z38")) Is Nothing Then Exit Sub Application.EnableEvents = False rc = MsgBox("新保険料ですか", vbYesNoCancel, "新保険料か旧保険料か選択します。") If rc = vbYes Then Target.Offset(0, 1) = "新" If rc = vbNo Then Target.Offset(0, 1) = "旧" If rc = Cancel Then Exit Sub Application.EnableEvents = True ************************************************************************************************************************************* エクセル2019 windows10 この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[195406] Re[1]: Worksheet Change イベント 値を削除するとき何もしない- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2022/11/23(21:00)) □U R L/ >データを削除するときは何もしないとしたい 隣のセルもクリアすべきじゃないですか? (実際には入力がないかも知れませんけども、訂正もない訳じゃないので) Private Sub Worksheet_Change(ByVal Target As Range) Dim rc As Integer If Target.CountLarge > 1 Then Exit Sub If Intersect(Target, Sheet3.Range("Z18:Z21, Z33:Z38")) Is Nothing Then Exit Sub If Target.Value = "" Then Application.EnableEvents = False Target.Offset(0, 1) = "" Application.EnableEvents = True Exit Sub End If rc = MsgBox("新保険料ですか", vbYesNoCancel, "新保険料か旧保険料か選択します。") Application.EnableEvents = False If rc = vbYes Then Target.Offset(0, 1) = "新" ElseIf rc = vbNo Then Target.Offset(0, 1) = "旧" End If Application.EnableEvents = True End Sub |
[195407] Re[2]: Worksheet Change イベント 値を削除するとき何もしない- ■記事引用/メール受信=OFF■ □投稿者/ 半平太 -(2022/11/23(21:07)) □U R L/ あれ? キャンセルした時、入力したデータは消さないでいいんですか? 消すべきなら ↓ If rc = vbYes Then Target.Offset(0, 1) = "新" ElseIf rc = vbNo Then Target.Offset(0, 1) = "旧" Else Target.Resize(1, 2) = "" End If |
[195409] Re[3]: Worksheet Change イベント 値を削除するとき何もしない- ■記事引用/メール受信=OFF■ □投稿者/ おおねこ -(2022/11/24(14:58)) □U R L/ 半平太様いつもありがとうございます。 検証して報告させていただきますのでよろしくお願いいたします。 |
このトピックに書きこむ |
---|