#05 ワークシート上でコピペなどの作業をおこなう
2020-09-13 00:00:00
ワークシート上でセルのコピー&ペーストもよくつかう機能の1つではないでしょうか。そのような処理をおこなうマクロもRangeオブジェクトを使用して作ることができます。
例えば下のように
Range("A1").Copy Range("A2")
また、別の書き方では下のように
Range("A1").Copy Range("A2").PasteSpecial xlPasteAll
別のシートに対してコピーするときには、コピー先のRangeに対しシートの指定が必要です。またPasteSpecialのあとにxlPasteValuesを指定すると値のコピーすることもできます。
Range("A1").Copy Sheets("Sheet2").Range("A1") Range("A1").Copy Range("A1").PasteSpecial xlPasteValues '値コピー
ValueやFormulaのように、オブジェクトの属性を表すものがプロパティでした。上記のCopyやPasteSpecialは同じように「.」でつなげられていますが、Rangeオブジェクトの属性ではなく、Rangeオブジェクトに対する操作を表しています。このようにオブジェクトに対する操作をおこなうものをメソッドといいます。シート上での操作をおこなうマクロはRangeやその他のオブジェクトのメソッドを利用して作ることができます。
メソッド名のあとには続けて引数を記述して、操作に対して追加の情報を指定することができます。引数には省略可能なものとそうでないものがあります。同じような操作でも、サンプルの1番目のようにコピー先を引数に指定して、1つの式でコピー&ペーストを完了することもできますし、2番目のサンプルのようにコピーとペーストを別のメソッドを使っておこなうことも可能です
Rangeオブジェクトのよく使うメソッドには以下のようなものがあります
- セルを選択する Select
- セルの削除 Delete
- セルの挿入 Insert
- セルを結合する Merge
- データのクリア ClearContents
Rangeオブジェクトに他にどようなプロパティやメソッドがあるかはなどは、下のマイクロソフトのリファレンスを見ると詳しくわかります。https://docs.microsoft.com/ja-jp/office/vba/api/excel.range(object)