プロが教えるわが家の防犯対策術!

Excel の表で、「行削除」ボタンを押したとき、次の手順で動くマクロを作りたいと思っています。
1.メッセージボックスで削除する行のクリックをうながす。
2.該当行がクリックされ、メッセージボックスのOKボタンが押される。
3.2番目のメッセージボックスに変えて、クリックされた行の A 列のセル(名称欄)
  の値(○○)をボックスに取り込んで「○○を削除します」と表示させる。
4.OKボタンが押されたら、その行全体を削除する。

なるべく簡便な方法を教えてください。よろしくお願いします。

A 回答 (2件)

>1.メッセージボックスで削除する行のクリックをうながす。


>2.該当行がクリックされ、メッセージボックスのOKボタンが押される。

処理の流れがおかしいです。InputBoxであればそのようなこともできるのですが、MsgBoxではメッセージダイアログを表示してからセルを指定するのはできません

1.マクロを実行するとアクティブセルの行を削除して良いか確認メッセージを表示する
2.「OK」を選択したらその行を削除する
が一般的なパターンではないでしょうか。それならこんなマクロになります。マクロはALT+F11でVBE画面を開き、「VBAProjectエクスプローラのシート名右クリック」→「挿入」→「標準モジュール」で表示される画面にペーストして下さい。実行はシート画面に戻って、ALT+F8を押してマクロ一覧からマクロ名を選択して実行します。

Sub Macro1()
Dim res As Integer
 If TypeName(Selection) = "Range" Then
  Selection.EntireRow.Select
  res = MsgBox("選択している行を削除しますか?", vbYesNo)
  If res = vbYes Then
   Selection.EntireRow.Delete
  End If
 End If
End Sub

このマクロでは複数行選択されていたら、複数行まとめて削除します。
これを選択している複数行の中で先頭行のみ削除したいなら、マクロ中の
 Selection.EntireRow.*****

 Selection.Cells(1,1).EntireRow.******
に変更してください(2カ所あります)
    • good
    • 1
この回答へのお礼

zap35さん ありがとうございました。

お礼日時:2007/07/10 14:27

こんにちは。



#1 の zap35 さんのでよければ、こちらの話は聞き流してください。

「行削除」ボタンというのは、マウスの右クリックメニューとか、メニューの編集の削除とかのコマンドボタンに対する、メッセージをつけるということではありませんか?

時々、質問される内容で、他の人がいきなり行や列を削除してしまうので、それにメッセージを出したり、禁止させたいというリクエストがあります。

なお、
>1.メッセージボックスで削除する行のクリックをうながす。
>2.該当行がクリックされ、メッセージボックスのOKボタンが押される。

こちらに関しては、私はイメージは理解できるのですが、使う側がうっとうしいと思います。しょせん、InputBox にしても、ワークシート内で、そう自由に動き回るわけではありませんから。また、デジタル式で、行数の数字を入れて、それで削除させるほうが早いです。その場合は、私なら、メニューの編集の中に入れるかもしれませんね。かなり面倒ですから、暇に任せて作ることになるだろうと思います。(^^;

この回答への補足

Wendy02さん ありがとうございます。

>「行削除」ボタンというのは、マウスの右クリックメニューとか、メニューの編集の削除とかのコマンドボタンに対する、メッセージをつけるということではありませんか?

知人が Excel で毎月個人経営の計算処理を行っています。
いまの人ができなくなったとき、次の人がマニュアル(自製)を見なくても画面を頼りになんとかできるようにしておいてあげようと、うすいあたまをたたきながらやっているところです。

ねらった行を削除するなどという簡単なことも、行番号を右クリックすることを知らなければすぐにはできません。そんな人でも、「行削除」ボタンなら見ればわかるだろうというわけです。
いろいろ教えていただいて、おかげさまでもう一息のところです。頑張りますのでよろしくお願いします。

補足日時:2007/07/04 11:40
    • good
    • 0
この回答へのお礼

Wendy02さん ありがとうございました。

お礼日時:2007/07/10 14:26

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

このQ&Aを見た人はこんなQ&Aも見ています