VBA【Copy】について簡単に解説

Excel・VBA・AI活用
スポンサーリンク
スポンサーリンク

 今回はVBAで頻繁に使用することになる「コピー」についての解説です。

 「値のみ」をコピーしたい場合は以前も説明した【.Value = .Value】の処理が一番早く、軽いです。基本的にはコチラを習得すれば良いと思います。

 ただ、この【.Value = .Value】では「値以外」のコピーは出来ません。書式や数式が必要な場合は「Copy」メソッドが必要になります。

 この記事があなたのお役に立てれば幸いです。

 この解説はGeminiPROに作成して貰っています。

1. VBAの「Copy」で出来ること

 一言で言うと、セルの内容も見た目も、丸ごとコピー機にかける機能です。

 以前解説した【.Value = .Value】 は、「隣の席の人に、ノートの内容を文字だけ書き写してあげる」ようなものです。 それに対して Copy メソッドは、「ノートのページを丸ごとカラーコピーして、別の場所にペタッと貼り付ける」ようなイメージです。文字だけでなく、ペンの色、蛍光ペンの跡、枠線まで一瞬で再現できます。


2. 基本の書き方

コピー元.Copy コピー先

例題:A1セルの「文字・色・枠線」をすべてB1セルにコピーする場合

VBA

Range("A1").Copy Destination:=Range("B1")

Destination:= は省略して Range("A1").Copy Range("B1") と書いてもOKです。

スポンサーリンク

3. なぜ「.Value = .Value」ではダメだったのか?

Excelのセルは、「中身(値)」「洋服(書式)」の2層構造になっています。

  • .Value = .Value: 中身(数字や文字)だけを移動させます。洋服(背景色や太字)は脱ぎ捨ててしまうので、コピー先は「すっぴん」の状態になります。
  • Copy メソッド: 中身も洋服もセットで移動させます。

4. 使うための準備

  • 必要なExcelバージョン: すべてのバージョン(Excel 97から最新のMicrosoft 365まで)で動きます。まさに不朽の名作コードです。
  • 前提として知っておくこと
    • Range(レンジ): 「どのセルを指すか」という指定方法。
    • コピー後の「点々」: 普通に手動でコピーした時と同じように、コピー元のセルが点々で囲まれることがあります。これを消したい時は、コードの最後に Application.CutCopyMode = False と1行足してあげると、後片付けまで完璧な「プロの仕事」になります。

コメント

タイトルとURLをコピーしました