ExcelマクロVBA入門 | 第29回.セル・行・列の削除・挿入(Delete,Insert) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2013-05-30

第29回.セル・行・列の削除・挿入(Delete,Insert)


単一セルまたは複数セルの削除・挿入と行・列の削除・挿入について解説します。

単一セルまたは複数セルを指定しての、行全体・列全体に対する削除・挿入と、

行・列の削除・挿入は結果としては同じ事になりますが、マクロVBA内においては使い分けが必要になる場合があります。


※以下、Cells(行, 列)、Rows(行位置)、Columns(列位置)は、Rangeで書き換え可能です。
  また、複数セル・複数行・複数列の指定も同様です。

セルの削除

・左方向にシフト
Cells(行, 列).Delete Shift:=xlToLeft
上方向にシフト
Cells(行, 列).Delete Shift:=xlUp
・行全体
Cells(行, 列).EntireRow.Delete

EntireRowは、指定セルが含まれる行になります。

EntireRowは、RangeオブジェクトのプロパティでRangeオブジェクトを返します。
・列全体
Cells(行, 列).EntireColumn.Delete

EntireColumnは、指定セルが含まれる列になります。

EntireColumnは、RangeオブジェクトのプロパティでRangeオブジェクトを返します。


セルの挿入

・右方向にシフト
Cells(行, 列).Insert Shift:=xlToRight
・下方向にシフト
Cells(行, 列).Insert Shift:=xlUp
・行全体
Cells(行, 列).EntireRow.Insert
・列全体
Cells(行, 列).EntireColumn.Insert


Shift:=は省略可能なのですが、セルの挿入削除時には、Shift:=は必ず指定しましょう。
省略した場合は、どちらにシフトされるかは、選択セル範囲の形によって自動で判定されます。
縦長か、横長かによって、自動的に上下左右が決定されます。
しかしそれでは、マクロを見ただけでは、どちらにシフトするかが不明になってしまいます。
従って、必ず、Shift:=は指定して下さい。


行の削除

Rows(行位置).Delete


行の挿入

Rows(行位置).Insert


列の削除

Columns(列位置).Delete


列の挿入

Columns(列位置).Insert


特に説明も必要ないのですが、マクロの記録で作成される、

Rows("6:6").Select

Selection.Delete Shift:=xlUp

これを基に作成したマクロ

Rows("6:6").Delete Shift:=xlUp

このShift:=xlUpが必要なのか、との質問が時々あります。

結論は、不要です。

行削除したら、削除後は、上にシフトする以外にありえません。

Rows(6).Delete Shift:=xlDown

としても、正しく動作します。

つまり、行・列の挿入・削除では、Shift:=の指定は意味がありません。

まとめると、

セル範囲の挿入・削除では、Shift:=は必要

行・列の挿入・削除では、Shift:=は不要




同じテーマ「ExcelマクロVBA入門」の記事

第30回.総合練習問題3
第31回.セルの書式(表示形式,NumberFormatLocal)
第32回.セルの書式(配置,Alignment)
第33回.セルの書式(フォント,Font)
第34回.セルの書式(塗りつぶし,Interior)
第35回.セルの書式(罫線,Border)
第36回.総合練習問題4

新着記事 ・・・新着記事一覧を見る

Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)
ファイルの一覧取得・削除(File)|Google Apps Script入門(1月24日)
フォルダの一覧取得・作成・削除(Folder)|Google Apps Script入門(1月24日)
フォルダとファイルを扱う(DriveApp)|Google Apps Script入門(1月24日)
スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.変数とデータ型(Dim)|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



  • >
  • >
  • >
  • セル・行・列の削除・挿入(Delete,Insert)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP