戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
Changeイベントが2つある時の統合

    [191660] Changeイベントが2つある時の統合-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ chabin -(2020/03/31(06:47))
    □U R L/
      いつもお世話になります。
      
      OSは、Win10 エクセルは、2016 です。
      
      D列に二つ(下記の@/A)のChangeイベントが発生します。
      
      この場合どのようにすればいいかご指導願えませんでしょうか。
      
      参考
      @
      Private Sub Worksheet_Change(ByVal Target As Range)
       
      '2014/10/19 YOKOHAMA CHABIN ver1.14
       
      If Intersect(Target, Range("D2:D1000")) Is Nothing Then Exit Sub
       
      Application.EnableEvents = False
       
       If Target.Value = 1 Then Target.Value = "AA"
       If Target.Value = 2 Then Target.Value = "BB"
       If Target.Value = 3 Then Target.Value = "AABB"
         
      Application.EnableEvents = True
       End Sub
      
      A
       Private Sub Worksheet_Change(ByVal Target As Range)
        If Intersect(Target, Range("A:D")) Is Nothing Or Target.Count > 1 Then Exit Sub
          With Target
            Select Case .Column
              Case Is < 4
                .Offset(, 1).Select
            Case 4
                .Offset(1, -3).Select
              
            End Select
          End With
       End Sub


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

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



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [191661] Re[1]: Changeイベントが2つある時の統合-

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

    □投稿者/ γ -(2020/03/31(07:52))
    □U R L/
      If A Then Exit Sub
      処理X
      
      と
      
      If B Then Exit Sub
      処理Y
      
      を続けて書くと、
      Aが成立しても処理Yが必要なこともあり、その場合不都合があるので、
      以下のようにすると、ひとつのchangeプロシージャにまとめることができるのでは?
      
      If Not A Then 
          処理X
      End If
      
      If Not B Then 
          処理Y
      End If


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

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




    [191662] Re[2]: Changeイベントが2つある時の統合-

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

    □投稿者/ 半平太 -(2020/03/31(08:16))
    □U R L/
      >この場合どのようにすればいいか
      
      どうなればいいか(仕様)の説明がないと、どうすればいいか確たることは言えません。
      
      挙動を忖度するとこんな感じ
               ↓
      Private Sub Worksheet_Change(ByVal Target As Range)
          
          If Intersect(Target, Range("A:D")) Is Nothing Or Target.Count > 1 Then Exit Sub
          
          With Target
              Select Case .Column
                  Case Is < 4
                      .Offset(, 1).Select
                  Case 4
                      .Offset(1, -3).Select
                      
                      Application.EnableEvents = False
                          Select Case .Value
                              Case 1
                                  .Value = "AA"
                              Case 2
                                  .Value = "BB"
                              Case 3
                                  .Value = "AABB"
                          End Select
                      Application.EnableEvents = True
              End Select
          End With
      End Sub


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

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




    [191663] Re[3]: Changeイベントが2つある時の統合-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ chabin -(2020/03/31(09:04))
    □U R L/

      γさん
      早速のご指導をありがとうございました。

      半平太さん
      早速ご指導いただいた構文を試させていただきました。
      上手くでき感謝です。

      この2つのイベント統合は初めての経験です。



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

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

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


- Child Forum -
Edit:ゆう-G