戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
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


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [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


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [195409] Re[3]: Worksheet Change イベント 値を削除するとき何もしない-

    記事引用/メール受信=OFF■

    □投稿者/ おおねこ -(2022/11/24(14:58))
    □U R L/

      半平太様いつもありがとうございます。

      検証して報告させていただきますのでよろしくお願いいたします。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G