• 締切済み

Excelマクロ、VBAについて質問です。

Excelマクロについて質問です。 管理表を作っているのですが、チェックボックスで選択した行の削除ボタンを作りたいと思っています。 ___A____ B____C 1 --- --- --- 2 --- --- --- 3 --- --- --- ・ ・ ・ というような表の先頭にチェックボックスをつくり、チェックを入れた行のみ削除し、 上に詰めるようにしたいと思っています。 上の表で2の行を消したら _A_ B_ C 1 --- --- --- 3 --- --- --- 4 --- --- --- となるような感じです。 どのようなプログラムをつくればいいでしょうか。 アドバイスお願いします。

みんなの回答

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

手順: 開発タブから挿入▼で「フォーム」のチェックボックスを「A2セルの中にちゃんと納まるように」配置する A2セルを下向けにコピーしてチェックボックスごと複製する さらに「フォーム」から「コマンドボタン」を選んで1行目に配置する コマンドボタンを右クリックしてマクロの登録を開始、新規作成をクリックして次のように作成する Sub ボタン1_Click() ’マクロ名は成り行きのまま変更しない事  dim c as object  dim res as range  for each c in activesheet.checkboxes   c.placement = xlmove   if c.value = 1 then    if res is nothing then    set res = c.topleftcell.entirerow    else    set res = union(res, c.topleftcell.entirerow)    end if    c.delete   end if  next  if not res is nothing then  res.delete shift:=xlshiftup  end if End Sub ファイルメニューから終了してエクセルに戻り、チェックボックスをチェックしてから、コマンドボタンをクリックしてマクロを実行する。 #「行を削除したい」ご相談ですが、その行に乗ってたチェックボックスはどうしたいのかご質問に書いてません。 てきとーにやってありますので、必要なら別途修正してください。追加質問は無しでお願いします。 さて。 エクセルには「フォーム」コントロールのチェックボックスと、「ActiveXコントロール(ご利用のエクセルのバージョンがご相談に書かれてませんが、バージョンによっては「コントロールツールボックス」)のチェックボックスの、2種類のチェックボックスが利用できます。 ご相談者さんにはどっちだろうが関係ないと思いますが、寄せられた回答がどっちを前提にしているかによって、具体的なマクロの書き振りも具体的な使い方も違ってきます(片方用のは他方では動かない)ので、ごっちゃにしないよう、よくよく気を付けてそれぞれ皆さんのお話を聞いてください。 またご利用のエクセルのバージョンが不明なので具体的に「ここを選んでこれを操作する」とは、とてもお話ししにくいので、適宜ご自分のソフトの状況に合わせて読み替えてください。

関連するQ&A

専門家に質問してみよう