【エクセルVBA】ボタンをクリックしてセルの挿入と削除をする

その他

エクセルの作業で「セルの挿入」する場合には、ホームタブから ⇒ 挿入 ⇒ セルの挿入 ⇒ 下方向にシフトの順で行い、「セルの削除」はホームタブ ⇒ 削除 ⇒ セルの削除 ⇒ 上方向にシフトの順で行います。

今回は「セルの挿入」と「セルの削除」のマクロをボタンに登録してボタンをクリックすることで簡単に実行出来るようにしたいと思います。

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

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

Sub セルの挿入() 

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

End Sub

Sub セルの削除()

Selection.Delete Shift:=xlUp

End Sub

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

前回の「ボタンをクリックしてシートの行を削除する」で使用したデータとボタンをそのまま利用してマクロを2つのボタンに登録します。

先ずは「ボタン1」を右クリックしてマクロの登録を選択します。

マクロ名「セルの挿入」を選び「OK」ボタンを押します。

次に「ボタン2」を右クリックしてマクロの登録を選択します。

マクロ名「セルの削除」を選び「OK」ボタンを押します。

これでボタンに2つのマクロが登録出来ました。

ボタンを押して「セルの挿入」と「セルの削除」のプログラムを実行します

ボタンの右側に「商品単価」の表を新しく追加します。

そしてセルA3からセルE3を範囲選択して「ボタン1」をクリックします。

「商品売上」の表だけ下方向にシフトしてセルの挿入が行われました。

続いてセルA3からセルE3を範囲選択した状態のまま「ボタン2」をクリックします。すると「商品売上」の表のセルが上方向にシフトしてセルの削除が行われました。

「行の挿入」はその行全体を追加するのに対し「セルの挿入」は選択したセル(単独または範囲)を対象とするので、表の一部のみにデータを追加したい場合に使用するのに適しています。

今回使用したプログラムコードの意味は以下の通りです。

Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow

Selection.Insert:現在選択されている「セル範囲」に新しい行を挿入します。
Shift:=xlDown:新しいセルを挿入して既存のセルを下にシフト(移動)させます。
CopyOrigin:=xlFormatFromRightOrBelow:選択していたセルの書式を引き継いでセルを挿入します。

Selection.Delete Shift:=xlUp

Selection.Delete:現在選択されている「セル範囲」を削除します。
Shift:=xlUp:削除場所より下にある既存のセルを上にシフト(移動)させます。