【エクセルVBA】ボタンをクリックしてシートの行を削除する

その他

前回の「ボタンをクリックしてシートに行を挿入する」で作成したシートに「ボタン2」を追加して行の削除のプログラムを登録したいと思います。

VBEの標準モジュールにコードを貼り付けます

エクセルの「開発」タブ →「Visual Basic」でVBE(Visual Basic Editor)の画面を表示して「標準モジュール」の「Module1」に下の「シートの行を削除」のコードをコピーして貼り付けます。

Sub シートの行を削除()

Selection.EntireRow.Delete '現在選択されているセルがある行全体を削除します。

End Sub

ボタンを作成してマクロを登録をします

Excelのシート1を表示して「開発」タブ →「挿入」→「ボタン(フォームコントロール)」をクリックします。

ボタンを配置したい場所をマウスでドラッグします。

マクロの登録ダイアログボックスが表示されるので「シートの行を削除」を選択して「OK」ボタンを押します。

ボタン2に「シートの行を削除」のマクロが登録されました。

ボタンを押して「シートの行を削除」のプログラムを実行します

セルA3を選択して「ボタン2」をクリックします。

3行目の1月8日のデータが削除されて、それより下の行が上に詰められました。

シートに配置したボタンの位置やサイズが変わらないようにするには

行の挿入や削除を行った際に、ワークシート上に配置したボタンの大きさや位置が変わってしまうのを防ぐには以下の設定を行う必要があります。

ボタンを右クリックして、右クリックメニューから「コントロールの書式設定」を選択します。

「プロパティ」タブを開き「セルに合わせて移動やサイズ変更をしない」を選択します。

以上のように設定すると、ボタンはワークシート上に常に固定され、行の挿入・削除によってボタンの位置やサイズがずれることがなくなります。