Excelのマクロにおけるセルのコピー、カット、ペーストの方法について確認します。
マスタファイル
今回は、テスト用に作成した学生のデータが記載されているマスタを使用します。
セルのコピー
書式
オブジェクト.Copy(Destination)
Copyはメソッドの1つです。
Copyメソッドを実行すると、指定したセルをコピーしてクリップボードに保管します。
Destinationは引数と呼ばれ、ここを指定するとクリップボードではなく指定したセルに貼り付けることができます。
Cellsを使ってコピー
1 2 3 |
Sub Test() Cells(3, 3).Copy Destination:=Cells(3, 9) End Sub |
実行結果
Rangeを使ってコピー
1 2 3 |
Sub Test() Range("B4").Copy Destination:=Range(I4) End Sub |
実行結果
指定したセルが含まれる範囲すべてをコピー
1 2 3 |
Sub Test() Range("C3").CurrentRegion.Copy Destination:=Cells(1, 9) End Sub |
実行結果
RangeとCellsを同時に使うことも可能です。
Rangeオブジェクトには「CurrentRegion」プロパティがあります。
指定したセルの後に「.CurrentRegion」と指定することで、そのセルを含む範囲全体をコピーすることができます。知っておくと便利です。
シートのコピー
書式
オブジェクト.Copy(Before,After)
Copyはメソッドの1つです。
シート(オブジェクトの1つです)を指定してCopyメソッドを実行することで、シートをコピーすることができます。
Beforeは指定したシートの前にコピーします。
Afterは指定したシートの後ろにコピーします。
Before,Afterは省略することができます。
シートをコピー元の前にコピーする
1 2 3 |
Sub Test() Worksheets("Sheet1").Copy Before:=Worksheets("Sheet1") End Sub |
実行結果
「Sheet1」の前にコピーしました。
シートをコピー元の後ろにコピーする
1 2 3 |
Sub Test() Worksheets("Sheet1").Copy After:=Worksheets("Sheet1") End Sub |
実行結果
シートの作成、名前の変更、既に作成したシートへのコピペはこちらの記事へ
シートのコピーだけに絞って紹介していますが、
実際には予めシートを作成し、そのシートを指定してコピペ、最後にシート名を指定するといった操作をすることもあります。
その場合はセルのコピペで済むこともありますが、こちらの記事で紹介しています。
新しいシートを作成する(シート名変更含む)
シートを作成、現在のシートからコピペ、シート名を変更するといった実際にマクロを組む際に起こり得る動作を後々作成します。
ブック(エクセルファイル)のコピー
書式
オブジェクト.SaveCopyAs(Filename)
Finenameの部分では、保存する場所のファイルパスとファイル名、拡張子を指定します。
コピー元のファイルと同じ拡張子を指定しなければ開くことができなくなります。(保存は可能です。)
また、指定したファイル名と同名のファイルが既に存在している場合は、上書き保存されるため注意する必要があります。
ブック(エクセルファイル)のコピーを保存する
1 2 3 |
Sub Test() ActiveWorkbook.SaveCopyAs Filename:="C:\Users\????\Desktop\test.xlsm" End Sub |
実行結果
引数であるFilenameでは、デスクトップまでのパスと、ファイル名、拡張子を指定しています。
ファイルのコピー
書式
FileCopy Source,Destination
ファイルをコピーするには、FileCopyステートメントを使用します。
Sourceはコピー元のファイル名を指定する引数です。
Destinationはコピー先のファイル名を指定する引数です。
Destinationで引数を指定する際、ファイルパスを記載することで保存先を指定することができます。ファイルパスを指定しない場合はカレントフォルダ(現在のフォルダ)にコピーされます。
既に同じ名前のファイルが存在する場合は、上書きされてしまうため注意が必要です。
また、開いているファイルに対しては実行できません。
ファイルのコピー
1 2 3 |
Sub Test() FileCopy Source:="C:\Users\?????\Desktop\コピー元\テスト.xlsm", Destination:="C:\Users\?????\Desktop\コピー先\テスト.xlsm" End Sub |
実行結果
少しわかりにくいですが、ファイルのコピーを行うことができました。
まとめ
コピーはマクロを組む際に必須の操作です。
基本的な内容ですが、使えるようになると非常に役に立ちます。
業務の効率化・自動化に向けて一歩ずつ進んでいきましょう。
私は普段こちらの書籍で学習しています。
Kindle Unlimitedなら月1,000円で対象の本をいくらでも読むことができます。
もちろんこの本も対象ですので、ぜひ登録して読んでみることをオススメします。
コメント