BOOGALOOメニュー
おしゃれな憩いの場・コミュニティサイトのnanini
nanani | 憩いの場・コミュニティサイトはこちら

「Excel – VBA」複数行への入力時は処理を止める

こんにちは

先日、特定列へVBAで入力規則を入れ、入力都度判定させるため「Worksheet_Change」での書き方を記事にいたしました

御覧いただいたユーザーより、複数行同時ペーストした時や複数行同時削除した時にエラーになるので、そこもマクロ側でコントロールしたいと問合せいただきましたので、私の場合どうしているかを載せます

問合せありがとうございます

対象が複数行の時はマクロ無効

以下用途に合わせて3行目を変更してください

複数行:Target.Rows.Count > 1

複数列:Target.Columns.Count > 1

複数セル:Target.Count > 1

複数行へ同時処理操作をした場合は、マクロを無効にし、データを元(操作前)に戻してメッセージボックス表示いたします

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Rows.Count > 1 Then
Application.EnableEvents = False 'Worksheet_Change無効にする'
Application.Undo 'Ctrl + Zと同様、作業を元に戻します'
MsgBox "複数行セルへの処理はできません" & vbCrLf & "1セルまたは1行ずつ作業してください"
Application.EnableEvents = True 'Worksheet_Change有効に戻す'
Else
ここに前回記事の処理を書く、ここはコピーしないでください
End If
End Sub

よろしくどうぞっ

そもそも、1セルずつ入力して都度判定したいのではなく、複数セルコピペなどした後に、手動で一括判定したい方は以下の前回記事に載っている「③一括判定」の方法をご利用ください

excel_icon

この記事が気に入ったら
フォローしてね!

  • URLをコピーしました!
  • URLをコピーしました!
おしゃれな憩いの場・コミュニティサイトのnanini

この記事を書いた人

BOOGALOO BOOGALOO ブガルー代表

憩いの場・コミュニティサイト
nanini を開発いたしております
左のリンクボタンからどうぞ↓🙏

目次