dポイントプレゼントキャンペーン実施中!

よろしくお願いします

保護しないシートがあります
自由に行の挿入ができますが、行数が一定以上増えると困るので
その時の処置をマクロで書くにはどうしたらいいでしょうか?

Private Sub Worksheet_Change(ByVal Target As Range)内に書くマクロなのですが
マクロの内容は次のとおりです

行が挿入されようとした時に、vbOKCancel で OKならば行の挿入を許可
キャンセルならば挿入させない(元に戻すでしょうか?)

うまく説明できていませんが、疑問点は補足させていただきますのでよろしくお願いします

A 回答 (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

あとはご自身のシートの現在の姿に応じて、「行が挿入された」という状況に特化して検出できるかどうか、ご自分で工夫してみて下さい。たとえば「最終行」に何某かエクセルが検知できるシルシを用意、それが何行より前にあるかどうかを調べるような工夫でも、有効かもしれません。

また、「行挿入」それのみを単独で検出するイベントプロシジャは、ありません。
    • good
    • 1
この回答へのお礼

深夜に親切に教えていただきましてありがとうございます
教えていただいた内容は、なんとなくぼんやりとですが分かります

private sub Worksheet_Change(byval Target as excel.range)
 if target.columns.count = columns.count then

部分は、全く想定していませんでした
大変勉強になりました
この応用でやってみます
ありがとうございました

お礼日時:2014/12/31 01:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!