👾nanani | 掲示板・QAサイトリリース👾

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

こんにちは👾

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

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

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

対象が複数行の時はデータを元に戻してメッセージボックス表示する

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

複数行: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

よろしくどうぞっ

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

  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

BOOGALOO BOOGALOO ブガルー代表

掲示板サイトの nanini を
全力で開発いたしております👾
どうしてもみんなの憩いの場が作りたい

目次
閉じる