• ベストアンサー

行が挿入される前に確認して処理するマクロ

よろしくお願いします 保護しないシートがあります 自由に行の挿入ができますが、行数が一定以上増えると困るので その時の処置をマクロで書くにはどうしたらいいでしょうか? Private Sub Worksheet_Change(ByVal Target As Range)内に書くマクロなのですが マクロの内容は次のとおりです 行が挿入されようとした時に、vbOKCancel で OKならば行の挿入を許可 キャンセルならば挿入させない(元に戻すでしょうか?) うまく説明できていませんが、疑問点は補足させていただきますのでよろしくお願いします

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

基本的な構成は次のようなカンジです。 private sub Worksheet_Change(byval Target as excel.range)  if target.columns.count = columns.count then   if not msgbox("OK?", vbokcancel) = vbok then    application.enableevents = false    application.undo    application.enableevents = true   end if  end if end sub あとはご自身のシートの現在の姿に応じて、「行が挿入された」という状況に特化して検出できるかどうか、ご自分で工夫してみて下さい。たとえば「最終行」に何某かエクセルが検知できるシルシを用意、それが何行より前にあるかどうかを調べるような工夫でも、有効かもしれません。 また、「行挿入」それのみを単独で検出するイベントプロシジャは、ありません。

maamaa
質問者

お礼

深夜に親切に教えていただきましてありがとうございます 教えていただいた内容は、なんとなくぼんやりとですが分かります private sub Worksheet_Change(byval Target as excel.range)  if target.columns.count = columns.count then 部分は、全く想定していませんでした 大変勉強になりました この応用でやってみます ありがとうございました

すると、全ての回答が全文表示されます。