最終更新日:2021-09-08第42回.セルをコピーするとはセルをコピーするとは、どういう事でしょうか・・・セルをコピーするというマクロVBAを少し掘り下げて考えることで、より実践的なマクロVBAコードを書くことが出来るようになります。コピーと一言で言っているものは、何のコピーを指しているのでしょうか。セルをコピーするとはセルは、Rangeオブジェクトです、オブジェクトそのものは、コピーできません。単一セルで考えてみましょう。何をコピーしているのでしょぅか。それは、オブジェクトのプロパティの値をコピーしているのです。.Copyで.Pasteなら、Rangeの全てのプロパティをコピーしているのです。値の貼り付けなら、.Valueをコピーしているに過ぎないのです。Range("セル番地2").Valueこれはつまり、Range("セル番地2").Valueの値を、Range("セル番地1").Valueに入れているのです。これで、値のコピーが出来る事が理解できると思います。Range("セル番地1").Interior.Colorこのようにすれば、背景色がコピーされます。これは、シートを指定すれば、別シート間でも可能です。上記方法ではコピーできないプロパティRange.Borders.○○○Range("B2").Borders.LineStyleRange("B2").Borders.Weightこれらのプロパティは、上記の方法では正しくコピー出来ません。罫線(Borders)には、上下左右斜めを指定する引数があります。Bordersだけの指定では、どの罫線かが特定できません。(Bordersは引数を省略して設定すると、上下左右に同じ罫線が設定されます。)この他にもオブジェクトを返すプロパティ等もありますので、単純にコピーできないプロパティがある事に注意してください。.Valueのセル範囲間のコピー.Valueであれば、セル範囲でも正しく動作します。Sheets("Sheet2").Range("A1:B10").Valueこれで値のコピーが出来てしまいます、実に簡単です。Sheet2のA1:B10の範囲のセル値が、Sheet1のA1:B10の範囲のセルに正しく入ります。注意点としては、このセル範囲の場合は、.Valueを省略できません、省略してしまうと正しくコピーされません。(正確には右辺のValueが省略できないのですが、この場合は必ず両方とも指定しましょう。)このセル範囲どうしでのコピーは、.Valueの時だけ特別に可能となっています。他のプロパティについては以下で説明します。.Value以外の場合は、セル範囲をセル範囲にコピーは出来ませんコピー先にはセル範囲を指定可能ですが、コピー元にはセル範囲は指定できません。正確には、正しくコピーされないと言う事です。Sheets("Sheet1").Range("A1:B10").Interior.Colorこれですと、全てが同一のColorならコピーされたように見えますが、セルによってColorが違う場合は、正しくコピーされません。セルによってColorが違う場合に使えないのでは意味がありませんので、あまり使用する機会は無いと思います。コピー方法の使い分け以下のRangeは、ブック指定・シート指定・セル範囲等の指定を総称して書いています。Destination:=コピー先Range※Destination:=は省略可能。Paste:=xlPasteFormats※xlPasteFormatsは適宜変わります。コビー元Range.プロパティこのような感じで、使い分けすれば良いでしょう。セルのコピー(Copyメソッド)実行時の注意点コビー元Range.Copyこれだけ書いた場合は、クリップボードにコピーされますので、マクロ実行中に、エクセル以外のソフトであろうと、Ctrl+C等でコピーすると正しく動作しなくなります。最後にマクロVBAにおいては、セルのコピーは頻繁に発生します。・最後にこちらと合わせて、しっかりと覚えて下さい。セルのコピーの書き方で、結構マクロの技量が計れます。マクロの処理速度にも大きく影響する重要な処理となります。見るTRIMRANGE関数(セル範囲をトリム:端の空白セルを除外)|エクセル入門(2024-08-30)正規表現関数(REGEXTEST,REGEXREPLACE,REGEXEXTRACT)|エクセル入門(2024-07-02)エクセルが起動しない、Excelが立ち上がらない|エクセル雑感(2024-04-11)ブール型(Boolean)のis変数・フラグについて|VBA技術解説(2024-04-05)テキストの内容によって図形を削除する|VBA技術解説(2024-04-02)ExcelマクロVBA入門目次|エクセルの神髄(2024-03-20)VBA10大躓きポイント(初心者が躓きやすいポイント)|VBA技術解説(2024-03-05)テンキーのスクリーンキーボード作成|ユーザーフォーム入門(2024-02-26)無効な前方参照か、コンパイルされていない種類への参照です。Case)|VBA入門9.メッセージボックス(MsgBox関数)|VBA入門10.マクロとは?VBAとは?VBAでできること|VBA入門ホームマクロVBA入門編マクロVBA入門セルをコピーするとはこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。アクセスランキングサイトマップ事業案内お問い合わせホームマクロVBA入門編マクロVBA入門セルをコピーするとはこのサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。