エクセルマクロ(EXCEL VBA)

エクセルマクロ(EXCEL VBA) その15 行や列の挿入と削除(Insert Delete)

行(Row)の挿入

前回使ったこの整理シートの、帝劇と本多劇場の間に、マクロで新国立劇場のデータを入れたいとします。

ここに新国立劇場を

まずは行(Row)を挿入しましょう。

帝劇と本多の間、つまり4行目に空行を入れれば良さそうです。

開発→Visual Basic
挿入→標準モジュールを出してから

Sub gyoire()
Rows(4).Insert
End Sub

と打ち込んでください。

4行目に空行を挿入

これを実行すると

4行目に空行を挿入できた

見事、4行目に空行を挿入できました。
本多劇場の行も消えてたりしないですね。

行(Row)の削除

この表のオーブの行を消したいとします。
行を削除するには、Deleteを使います。

Sub gyoire()
Rows(4).Insert
Rows(2).Delete
End Sub

デリートを追加

さっき、空行を追加していましたが、一度その空行を削除してから、これを実行してください。
そうしないと、ヘンなことになります。

最初のデータに戻してから実行すると、

帝劇と本多の間、つまり4行目に空行を入れて、
オーブのある2行目を消す。

というマクロが実行されたわけですね。

列(Column)の挿入

続いて、「場所」と「キャパ」の間に列を挿入してみましょう。
列はColumnと言いまして、これを3列目に、Insertするので

Sub gyoire()
Rows(4).Insert
Rows(2).Delete
Columns(3).Insert
End Sub

としてみましょう。
ややこしいので、一旦、行を挿入と削除の命令はやめておきます。
一旦やめておくときは、
行の最初に ’ を入れるとその行の命令だけマクロは無視してくれます。
これをコメントアウトと言います。

これを実行すると

3列目に挿入できた

3列目(C列)に空の列を挿入することができました。

列(Column)の削除

ということは、「劇場」のある1列目を削除するには、

Columns(1).Delete

とすれば良さそうですね。

1列目を削除

これを実行すると

1列目が消せた

3列目に空行を挿入して、
1列目を削除。
という命令が実行できました。

複数の行(Row)の挿入

ちなみに、複数の行を挿入したい場合もあると思います。

最初のこの状態から、

整理用のシートができた

4行目から6行目まで空行を入れたいとした場合には、

Rows("4:6").Insert

と、コロンでつないで書くと実現できます。
ダブルクォーテーションではさんでいることに注意してください。

コロンでつなぐ

これを実行すると、

4行目から6行目に空行を入れることができました。

 
なお、マクロで行った削除に関しては、Ctrl+Zなどで戻ることができません。
とても危険ですので、大事なデータを扱う時には、必ずバックアップしてから試してください。
さらに、その14でやったように、シートをコピーしてから、元データは非破壊で行うのがおすすめです。

 
今回の最終的なコード

Sub gyoire()
Rows(4).Insert
Rows(2).Delete

Columns(3).Insert
Columns(1).Delete

Rows("4:6").Insert
End Sub

宿題-15
一番最初の表の、帝国劇場と本多劇場の間に、一行挿入して、
新国立劇場中劇場、初台、1010
とそれぞれの列に入れてください。

エクセルマクロ(EXCEL VBA) その16 表を整理してメアドリストを作る

(文:森脇孝/エントレ)

関連記事一覧