VBA入門
セルをコピーするとは

ExcelマクロVBAの基本と応用、エクセルVBAの初級・初心者向け解説
公開日:2013年5月以前 最終更新日:2021-09-08

第42回.セルをコピーするとは


セルをコピーするとは、どういう事でしょうか・・・
セルをコピーするというマクロVBAを少し掘り下げて考えることで、より実践的なマクロVBAコードを書くことが出来るようになります。
コピーと一言で言っているものは、何のコピーを指しているのでしょうか。



セルをコピーするとは

セルは、Rangeオブジェクトです、
オブジェクトそのものは、コピーできません。

まずは単一セルで考えてみましょう。

では、何をコピーしているのでしょぅか。
それは、
オブジェクトのプロパティの値をコピーしているのです
.Copyで.Pasteなら、Rangeの全てのプロパティをコピーしているのです。
値の貼り付けなら、.Valueをコピーしているに過ぎないのです

このように考えれば、

Range("セル番地1").Value = Range("セル番地2").Value

これはつまり、
Range("セル番地2").Valueの値を、Range("セル番地1").Valueに入れているのです
これで、値のコピーが出来る事が理解できると思います。

Range("セル番地2").Interior.Color = Range("セル番地1").Interior.Color

このようにすれば、背景色がコピーされます。
これは、シートを指定すれば、別シート間でも可能です。


上記方法ではコピーできないプロパティ

Range.Borders.○○○
Range("B2").Borders.LineStyle
Range("B2").Borders.Weight
これらのプロパティは、上記の方法では正しくコピー出来ません。
罫線(Borders)には、上下左右斜めを指定する引数があります。
Bordersだけの指定では、どの罫線かが特定できません。
(Bordersは引数を省略して設定すると、上下左右に同じ罫線が設定されます。)

この他にもオブジェクトを返すプロパティ等もありますので、単純にコピーできないプロパティがある事に注意してください。


.Valueのセル範囲間のコピー

.Valueであれば、セル範囲でも正しく動作します。

Sheets("Sheet1").Range("A1:B10").Value = Sheets("Sheet2").Range("A1:B10").Value

これで値のコピーが出来てしまいます、実に簡単です。
Sheet2のA1:B10の範囲のセル値が、Sheet1のA1:B10の範囲のセルに正しく入ります。

注意点としては、
このセル範囲の場合は、.Valueを省略できません、省略してしまうと正しくコピーされません。
(正確には右辺のValueが省略できないのですが、この場合は必ず両方とも指定しましょう。)

このセル範囲どうしでのコピーは、.Valueの時だけ特別に可能となっています。
他のプロパティについては以下で説明します。


.Value以外の場合は、セル範囲をセル範囲にコピーは出来ません

コピー先にはセル範囲を指定可能ですが、コピー元にはセル範囲は指定できません
正確には、正しくコピーされないと言う事です。

Sheets("Sheet2").Range("A1:B10").Interior.Color = Sheets("Sheet1").Range("A1").Interior.Color
これはOKですが、
Sheets("Sheet2").Range("A1:B10").Interior.Color = Sheets("Sheet1").Range("A1:B10").Interior.Color

これですと、全てが同一のColorならコピーされたように見えますが、
セルによってColorが違う場合は、正しくコピーされません。
セルによってColorが違う場合に使えないのでは意味がありませんので、あまり使用する機会は無いと思います。


コピー方法の使い分け

以下のRangeは、ブック指定・シート指定・セル範囲等の指定を総称して書いています。

・セルを全て同じ状態でコピーしたい場合は、
コビー元Range.Copy Destination:=コピー先Range

※Destination:=は省略可能。

・罫線のように複数のプロパティが関係している場合や、セル範囲で値以外のコピーの場合
コビー元Range.Copy
コピー先Range.PasteSpecial Paste:=xlPasteFormats

※xlPasteFormatsは適宜変わります。

・上記以外なら、特に値のコピーなら
コピー先Range.プロパティ = コビー元Range.プロパティ

このような感じで、使い分けすれば良いでしょう。


セルのコピー(Copyメソッド)実行時の注意点

コビー元Range.Copy
これだけ書いた場合は、クリップボードにコピーされますので、
マクロ実行中に、エクセル以外のソフトであろうと、Ctrl+C等でコピーすると正しく動作しなくなります


最後に

マクロVBAにおいては、セルのコピーは頻繁に発生します。
前回までの、
第40回.セルのコピー・カット&ペーストCopy,Cut,Paste)
・セルをコピー(複写)する場合 ・セルを切り取る(移動する)場合 ・セル範囲のコピーについて ・別のシートにコピーする場合 ・アクティブシート以外へのコピー ・可視セルのみコピー ・セルのコピーについてのサイト内参考ページ
第41回.セルのコピー&値の貼り付け(PasteSpecial)
・PasteSpecialメソッド ・値の貼り付け ・いろいろなコピーのVBAの書き方 ・PasteSpecialの使用例 ・最後に
こちらと合わせて、しっかりと覚えて下さい。
セルのコピーの書き方で、結構マクロの技量が計れます。
さらには、マクロの処理速度にも大きく影響する重要な処理となります。




同じテーマ「マクロVBA入門」の記事

第39回.セルのクリア(Clear,ClearContents)
第40回.セルのコピー・カット&ペースト(Copy,Cut,Paste)
第41回.セルのコピー&値の貼り付け(PasteSpecial)
第42回.セルをコピーするとは
第43回.総合練習問題5
第44回.VBA関数について
第45回.VBA関数(Format)
第46回.VBA関数(日付,DateAdd)
第47回.VBA関数(文字列操作,Replace,InStr,StrConv)
第48回.VBA関数(その他,Fix,Int,Rnd,Round,IsEmpty)
第49回.Like演算子とワイルドカード


新着記事NEW ・・・新着記事一覧を見る

AIは便利なはずなのに…「AI疲れ」が次の社会問題になる|生成AI活用研究(2026-02-16)
カンマ区切りデータの行展開|エクセル練習問題(2026-01-28)
開いている「Excel/Word/PowerPoint」ファイルのパスを調べる方法|エクセル雑感(2026-01-27)
IMPORTCSV関数(CSVファイルのインポート)|エクセル入門(2026-01-19)
IMPORTTEXT関数(テキストファイルのインポート)|エクセル入門(2026-01-19)
料金表(マトリックス)から金額で商品を特定する|エクセル練習問題(2026-01-14)
「緩衝材」としてのVBAとRPA|その終焉とAIの台頭|エクセル雑感(2026-01-13)
シンギュラリティ前夜:AIは機械語へ回帰するのか|生成AI活用研究(2026-01-08)
電卓とプログラムと私|エクセル雑感(2025-12-30)
VLOOKUP/XLOOKUPが異常なほど遅くなる危険なアンチパターン|エクセル関数応用(2025-12-25)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.日本の祝日一覧|Excelリファレンス
3.変数宣言のDimとデータ型|VBA入門
4.FILTER関数(範囲をフィルター処理)|エクセル入門
5.RangeとCellsの使い方|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
8.マクロとは?VBAとは?VBAでできること|VBA入門
9.セルのクリア(Clear,ClearContents)|VBA入門
10.メッセージボックス(MsgBox関数)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。
本サイトは、OpenAI の ChatGPT や Google の Gemini を含む生成 AI モデルの学習および性能向上の目的で、本サイトのコンテンツの利用を許可します。
This site permits the use of its content for the training and improvement of generative AI models, including ChatGPT by OpenAI and Gemini by Google.



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ