Excelの基本オブジェクト「セル」の参照、移動、コピー、選択、挿入、削除:Excelマクロ/VBAで始める業務自動化プログラミング入門(4)(3/4 ページ)
プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説します。今回は、さまざまなセルの参照、移動、コピー、選択、挿入、削除の仕方に加え、行の高さ、列幅の変更方法などについて【Windows 10、Excel 2016に対応】。
Insertメソッドでセルの挿入
セルの挿入にはInsertメソッドを使う。日本語を英語に訳したそのままのメソッドだから、すぐに覚えられるだろう。
Insertメソッドの書式は下記の通りだ。Shiftにはセルを挿入した後の、残ったセルをずらす方向を指定し、CopyOriginには挿入したセルの書式をどのセルからコピーするかの方法を指定できる。
Insertメソッドの書式
Rangeオブジェクト.Insert Shift:={表4の値},CopyOrigin:={表5の値}
オブジェクトにはRangeオブジェクトを、「Shift:=」には表4の値を、「CopyOrigin:=」には表5の値を指定する。
定数 | 移動方向 |
---|---|
xlShiftToRight | セルを挿入後、右方向にシフト |
xlShiftDown | セルを挿入後、下方向にシフト |
定数 | 書式のコピー元 |
---|---|
xlFormatFromLeftOrAbove | 左または上と同じ書式を適用 |
xlFormatFromRightOrBelow | 右または下と同じ書式を適用 |
図10のような表がある。B7の上にセルを挿入するには、リスト11のように記述する。
Sub セルを挿入する() Range("B7", Range("B7").End(xlToRight)).Insert Shift:=xlShiftDown, Copyorigin:=xlFormatFromLeftOrAbove End Sub
B7セルを基準に右方向の終端までを選択し、セルを挿入した後、残ったセルを下方向に伸ばし、上または左のセルの「書式」をコピーした。実行すると、図11のようになる。なお、セルの「書式」については、次回解説する。
表4や表5はExcelから表内にセルを挿入する手順を踏むときに表示されるメニューと対応している(図12)。
Deleteメソッドでセルの削除
セルの削除にはDeleteメソッドを使用する。書式は下記の通りだ。Shiftにはセルを削除した後、残ったセルをずらす方向を指定する。
Deleteメソッドの書式
Rangeオブジェクト.Delete Shift:={表6の値}
オブジェクトにはRangeオブジェクトを、「Shift:=」には表6の値を指定する。
定数 | 移動方向 |
---|---|
xlShiftToLeft | セルを左方向にシフト |
xlShiftUp | セルを上方向にシフト |
図10からE3セルの「社員番号」のセルを全部削除する際のVBAのコードはリスト12のようになる。
Sub セルを削除する() Range("E3", Range("E3").End(xlDown)).Delete Shift:=xlShiftToLeft End Sub
E3のセルを基準に終端セル(下)まで(xlDown)選択し、Deleteメソッドで削除した後、残ったセルを左にずらしている(xlShiftToLeft)。実行結果は図13のようになる。
セルの挿入と削除の解説の次は、行や列の挿入と削除について解説しよう。
行や列の挿入と削除
行や列の挿入と削除も、セルの挿入と削除と同じで、InsertとDeleteメソッドを使用する。書式もセルの場合と全く同じだ。
Insertメソッドで行の挿入
まず指定した箇所に行を挿入してみよう。VBAのコードはリスト13のようになる。
Sub 行の挿入() Rows("8:9").Insert CopyOrigin:=xlFormatFromRightOrBelow End Sub
CopyOriginに指定する値は表5を参照。実行すると図14のようになる。セルの挿入と削除の場合は、指定したセルのみが対象となるが、行や列の場合は、行全体、列全体が対象となる。
Deleteメソッドで行の削除
では、次に今挿入した行を削除してみよう。VBAはリスト14になる。
Sub 行の削除() Rows("8:9").Delete Shift:=xlShiftUp End Sub
リスト14では、8と9の行を削除した後、行を上にずらしている。Shiftの値は表6を参照してほしい。実行すると図15のようになる。図14と比較すると8と9の行が削除されているのが分かる。
Insertメソッドで列の挿入
次は指定した箇所に列を挿入してみよう。FとG列に列を挿入するVBAはリスト15のようになる。
Sub 列の挿入() Columns("F:G").Insert CopyOrigin:=xlFormatFromRightOrBelow End Sub
CopyOriginには表5の値を指定する。FとGの列を追加した後、右側の列の書式をコピーしている。実行すると、図16のようになる。
Deleteメソッドで列の削除
では、次に今挿入したFとGの列を削除してみよう。マクロはリスト16のようになる。
Sub 列の削除() Columns("F:G").Delete End Sub
これは説明するまでもないだろう、DeleteメソッドでFとG列を削除した。引数には何も指定しなくてもよい。
実行結果は図16の左図と同じだ。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Excelマクロ/VBAリファレンス用途別・キーワード別一覧超まとめ
- ピボットテーブルとは何か──「そもそも、何をする機能か」を理解する
Excelを通じて「ピボットテーブル」の基礎を学び、データ分析を実践するまでを習得する本連載。初回はピボットテーブルの基礎と、「どんなことができるのか」を解説する。 - どんなビジネスにも欠かせないリレーショナルデータベースの基礎知識と作り方――テーブル、レコード、フィールド、主キーとは
Accessを通じて、初心者がリレーショナルデータベースやSQLの基本を学び、データベースを使った簡単なシステムの作り方を習得する本連載。初回はデータベースの基本を理解し、Accessを使い始めてみよう。