訪問して頂きありがとうございます。まさふくろーです。
この記事では使用例を使って、指定したセル範囲の行/列/セルを削除する方法をご紹介します。
目次
使用例
行削除
「削除」ボタンをクリック

列削除
「削除」ボタンをクリック

セル削除
「削除」ボタンをクリック

使用するメソッド
Deleteメソッド
Rangeオブジェクト.Delete([Shift])
| 解説 | 指定したRangeオブジェクトに応じて、行/列/セルを削除する。 | ||||||
| Rangeオブジェクトで行を参照した場合は行が、列を参照した場合は列が、セルを参照した場合はセルが削除される。 | |||||||
| 引数 | Shift: セルを削除するときに、削除位置のセルを埋めるために隣接するセルをどの方向にずらすかを指定する。設定値は下表のとおり。
|
||||||
| 省略した場合は、Rangeオブジェクトで指定したセルの行数と列数の関係に応じて、ずれる方向が自動的に決められる(セルの行数が列数以下のときは上にずらす、行数が列数より大きいときは左にずらす)。 |
使用するプロパティ
Rowsプロパティ
オブジェクト.Rows(RowIndex)
| 解説 | 引数RowIndexで指定した行を参照するためのRangeオブジェクトを取得する。 |
| オブジェクトには、Worksheetオブジェクト、Rangeオブジェクトを指定する。オブジェクトを省略すると、アクティブシート(一番手前のシート)の行を参照する。 |
| 例 | 参照するセル |
| Rows | 全行 |
| Rows(2) | 2行目 |
| Rows("2:4") | 2~4行目 |
| Range("A3:D8").Rows(2) | 「A3~D8」セルの2行目 |
Columnsプロパティ
オブジェクト.Columns(ColumnIndex)
| 解説 | 引数ColumnIndexで指定した列を参照するためのRangeオブジェクトを取得する。 |
| オブジェクトには、Worksheetオブジェクト、Rangeオブジェクトを指定する。オブジェクトを省略すると、アクティブシート(一番手前のシート)の列を参照する。 |
| 例 | 参照するセル |
| Columns | 全列 |
| Columns(2) | B列(ワークシートの2列目) |
| Columns("B:C") | B列~C列 |
| Range("A3:D8").Columns(2) | 「A3~D8」セルの2列目 |
| Worksheets("Sheet2").Range("A3:D8").Columns | ワークシート「Sheet2」の「A3~D8」セルの全列 |
ActiveCellプロパティ
Applicationオブジェクト.ActiveCell
| 解説 | アクティブセルを参照するRangeオブジェクトを取得する。Applicationオブジェクトは省略できる。 |
オプションボタンの作成
「開発」タブの確認
オプションボタンの作成
①「開発」タブをクリック⇒②「挿入」をクリック⇒③ActiveX コントールにある「オプションボタン」をクリックします。

シート上にカーソルを移動し、ポインターを「+」の状態にします。

左クリックを押したまま、緑の矢印の方向にズルズルっとカーソルを移動します。

右クリックでショートカットメニューを表示し、「プロパティ」を選択します。

プロパティウィンドにて、以下項目を設定します。
| 項目 | 設定値 | 説明 |
| Caption | 行 | オプションボタンに表示する文字 |

同じ要領で、「列」「セル」のオプションボタンを作成します。

デザインモードの解除
①「開発」タブをクリック⇒②「デザインモード」をクリックし、デザインモードを解除します。

オプションボタンなどのコントールを編集可能にするモードです。 デザインモードONの場合は、コントロールの位置をずらしたり、プロパティを設定したりできます。
デザインモードOFFの場合は、コントロールの位置をずらしたりなどの編集ができなくなります。 

ボタンの作成
「開発」タブの確認
ボタンの作成
①「開発」タブをクリック⇒②「挿入」をクリック⇒③「ボタン」をクリックします。

シート上にカーソルを移動し、ポインターを「+」の状態にします。

左クリックを押したまま、緑の矢印の方向にズルズルっとカーソルを移動します。

「マクロの登録」画面が表示されます。

①「マクロ名」を変更⇒②「新規作成」ボタンをクリックします。

ボタンの名前を変更する
エクセルのブックに戻り、ボタンの上にフォーカスを当てます。すると、ポインターが「
」マークに切り替わります。

右クリックでショートカットメニューを表示し、「テキストの編集」を選択します。

ボタンの名前を変更します。

サンプルプログラム
VBAコードの入力
VBE(Visual Basic Editor)のピンク枠の部分に、VBAコードを入力していきます。

|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub 削除ボタン_Click() If Sheets("Sheet1").OptionButton1.Value = True Then Range("A1:C6").Rows(2).Delete ElseIf Sheets("Sheet1").OptionButton2.Value = True Then Range("A1:C6").Columns(3).Delete ElseIf Sheets("Sheet1").OptionButton3.Value = True Then Range("B5:C5").Delete xlShiftUp End If End Sub |
| 3 | オプションボタン「行」が選択された場合、 |
| 5 | 「A1~C6」のセル範囲から、2行目を削除する。 |
| 7 | オプションボタン「列」が選択された場合、 |
| 9 | 「A1~C6」のセル範囲から、3列目を削除する。 |
| 11 | オプションボタン「セル」が選択された場合、 |
| 13 | 「B5~C5」セル範囲を削除し、上にずらす。 |
サンプルプログラム(選択セルに対して処理を行う)
選択したセルに対して処理を行うと、上記サンプルプログラムよりも柔軟に対応することができます。

|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub 削除ボタン_Click() If Sheets("Sheet1").OptionButton1.Value = True Then Range("A1:C6").Rows(ActiveCell.Row).Delete ElseIf Sheets("Sheet1").OptionButton2.Value = True Then Range("A1:C6").Columns(ActiveCell.Column).Delete ElseIf Sheets("Sheet1").OptionButton3.Value = True Then ActiveCell.Delete xlShiftUp End If End Sub |
| 3 | オプションボタン「行」が選択された場合、 |
| 5 | 「A1~C6」のセル範囲から、選択行を削除する。 |
| 7 | オプションボタン「列」が選択された場合、 |
| 9 | 「A1~C6」のセル範囲から、選択列を削除する。 |
| 11 | オプションボタン「セル」が選択された場合、 |
| 13 | 選択セルを削除し、上にずらす。 |
VBAコードの保存
「ファイル」タブをクリックします。

「名前を付けて保存」を選択し、ファイル保存画面を起動します。

①ファイル名を入力⇒②「Excel マクロ有効ブック(*.xlsm)」を選択⇒③「保存」ボタンをクリックします。

最後まで読んでいただき、ありがとうございました!


