- ベストアンサー
Excel 指定行削除マクロ
Excel の表で、「行削除」ボタンを押したとき、次の手順で動くマクロを作りたいと思っています。 1.メッセージボックスで削除する行のクリックをうながす。 2.該当行がクリックされ、メッセージボックスのOKボタンが押される。 3.2番目のメッセージボックスに変えて、クリックされた行の A 列のセル(名称欄) の値(○○)をボックスに取り込んで「○○を削除します」と表示させる。 4.OKボタンが押されたら、その行全体を削除する。 なるべく簡便な方法を教えてください。よろしくお願いします。
- みんなの回答 (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カ所あります)
その他の回答 (1)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 #1 の zap35 さんのでよければ、こちらの話は聞き流してください。 「行削除」ボタンというのは、マウスの右クリックメニューとか、メニューの編集の削除とかのコマンドボタンに対する、メッセージをつけるということではありませんか? 時々、質問される内容で、他の人がいきなり行や列を削除してしまうので、それにメッセージを出したり、禁止させたいというリクエストがあります。 なお、 >1.メッセージボックスで削除する行のクリックをうながす。 >2.該当行がクリックされ、メッセージボックスのOKボタンが押される。 こちらに関しては、私はイメージは理解できるのですが、使う側がうっとうしいと思います。しょせん、InputBox にしても、ワークシート内で、そう自由に動き回るわけではありませんから。また、デジタル式で、行数の数字を入れて、それで削除させるほうが早いです。その場合は、私なら、メニューの編集の中に入れるかもしれませんね。かなり面倒ですから、暇に任せて作ることになるだろうと思います。(^^;
お礼
Wendy02さん ありがとうございました。
補足
Wendy02さん ありがとうございます。 >「行削除」ボタンというのは、マウスの右クリックメニューとか、メニューの編集の削除とかのコマンドボタンに対する、メッセージをつけるということではありませんか? 知人が Excel で毎月個人経営の計算処理を行っています。 いまの人ができなくなったとき、次の人がマニュアル(自製)を見なくても画面を頼りになんとかできるようにしておいてあげようと、うすいあたまをたたきながらやっているところです。 ねらった行を削除するなどという簡単なことも、行番号を右クリックすることを知らなければすぐにはできません。そんな人でも、「行削除」ボタンなら見ればわかるだろうというわけです。 いろいろ教えていただいて、おかげさまでもう一息のところです。頑張りますのでよろしくお願いします。
お礼
zap35さん ありがとうございました。