Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


181 / 13645 ツリー ←次へ | 前へ→

【81639】Private Sub Worksheet_Changeについて TDS 21/2/2(火) 17:46 質問[未読]
【81640】Re:Private Sub Worksheet_Changeについて γ 21/2/2(火) 19:44 発言[未読]
【81642】Re:Private Sub Worksheet_Changeについて TDS 21/2/3(水) 10:53 お礼[未読]
【81647】Re:Private Sub Worksheet_Changeについて γ 21/2/4(木) 23:08 発言[未読]
【81651】Re:Private Sub Worksheet_Changeについて TDS 21/2/5(金) 8:24 お礼[未読]

【81639】Private Sub Worksheet_Changeについて
質問  TDS  - 21/2/2(火) 17:46 -

引用なし
パスワード
   Worksheet_Changeで、入力したデータを置き換える処理を作成しております。

そこで質問ですが、コピー→貼り付けた時は、Worksheet_Changeが実行されるのを回避したいです。ご指導宜しくお願いします。


Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Row = 2 And Target.Column = 21 Then '年月変更
    Exit Sub
  Else
    If (Target.Column > 37) Or (Target.Column < 4) Then Exit Sub
    If (Target.Row > 49) Or (Target.Row < 6) Then Exit Sub
    If Target.Row Mod 2 = 1 And Target.Column = 4 Then Exit Sub
  End If
 '---置換----
  keyin = StrConv(Cells(Target.Row, Target.Column), 1)
  If keyin = "K" Then
   Cells(Target.Row, Target.Column).Value = "休日"
  elseIf keyin = "NK" Then
   Cells(Target.Row, Target.Column).Value = "年休"
  End If
  Exit Sub
End Sub

【81640】Re:Private Sub Worksheet_Changeについて
発言  γ  - 21/2/2(火) 19:44 -

引用なし
パスワード
   冒頭に
If Application.CutCopyMode Then Exit Sub
などというものを入れたらどうでしょうか。

【81642】Re:Private Sub Worksheet_Changeについて
お礼  TDS  - 21/2/3(水) 10:53 -

引用なし
パスワード
   ▼γ さん:おはようございます。
ご指導ありがとうございます。
貼りつけ後、処理させないようになりました。ありがとうございました。

【81647】Re:Private Sub Worksheet_Changeについて
発言  γ  - 21/2/4(木) 23:08 -

引用なし
パスワード
   本筋と違うので端折っていましたが、念のため書いておきます。
(1)Cells(Target.Row, Target.Column)は、単にTargetでよいでしょう。
(2)Changeプロシージャのなかでセルの値を変更すると(この場合、該当)、
  それが連鎖的にイベントプロシージャを引き起こします。
  この場合は、脱出条件で脱出することはしますが、
  起動されない手当をしておいたほうがよいと思います。

  以下のようにすることが定石です。
  Application.EnableEvents = False
  'セルの変更処理
  Application.EnableEvents = True
 
  これは常に意識しておいたほうがよいと思います。

【81651】Re:Private Sub Worksheet_Changeについて
お礼  TDS  - 21/2/5(金) 8:24 -

引用なし
パスワード
   ▼γ さん:おはようございます。
ご指導ありがとうございます。
試行錯誤中ですが、よろしくお願いしますmm

181 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free