【簡単エクセル/Excel VBA マクロ】セルのコピー&ペースト|セルの基本操作 #002


いつもありがとうございます!
皆さん、こんにちは。ご覧いただきありがとうございます。
“日々の業務にちょうどいい自動化を”──
業務改善アプリケーションの作成を行っている「ソフトデザイン工房」 です。
本稿では、セルの基本操作のうち「セルのコピー&ペースト」を解説します。
この記事が、あなたのVBAマクロの価値をさらに高める一助となれば幸いです。
VBAを活用して、自分自身や身近なコミュニティに合ったアプリケーションを作成し、仕事量は半分に、成果は2倍に──そんな未来を目指すあなたを応援しています。
VBAにおける「セルの基本操作」の全体像
マクロを作成するにあたり、セルの操作は何かと必要になります。セルの基本操作の全体像は以下の記事で解説します。
この記事では、セルの基本操作の一部である「セルのコピー&ペースト」を解説します。
VBAで「セルのコピー&ペースト」を行う2つの方法

VBAでコピー&ペーストを行うには、大きく分けて2つの方法があります。
- シンプルなコピー&ペースト
- 貼り付けの条件を指定するコピー&ペースト
それぞれ解説していきます。
シンプルなコピー&ペースト
貼り付けの条件を細かく指定せず、単純にセルのコピー&ペーストをするのには、Copy メソッドと Destination オプションを使った方法があります。
なお、ここでいう貼り付けの条件とは、”値のみ”、”書式のみ”、といったような条件のことです。
以下のように「コピー元」から「コピー先」のセルに「コピーしたい情報」をコピーする場合を例に解説します。

これを実行するには、以下のようなコードを記述します。
ThisWorkbook.Worksheets("Sheet1").Cells(4, 2).Copy Destination:=ThisWorkbook.Worksheets("Sheet1").Cells(4, 4)
このコードは、コピー元のセル(オブジェクト)に対して、.Copy メソッドを使ってセルをコピーし、Destination オプションで貼り付け先の指定と貼り付けを行なっています。
ThisWorkbook.Worksheets("Sheet1").Cells(4, 2).Copy左側の部分では、コピー元のセル(オブジェクト)に対して、.Copy メソッドを使ってセルをコピーしています。
Destination:=ThisWorkbook.Worksheets("Sheet1").Cells(4, 4)右側の部分では、貼り付け先にコピーした内容を貼り付けています。尚、Destination という英単語には、目的地や行先といった意味があります。
尚、上記のコードの中に出てきた ":=" は、オプション、つまり引数に値を設定するときに使用されます。
ここでは、Destination という引数に ThisWorkbook.Worksheets("Sheet1").Cells(4, 4) という値を設定しています。
引数とは、関数やプログラムに渡す値やオブジェクトのことです。

以上で「シンプルなコピー&ペースト」の解説は終了です。ありがとうございました。
貼り付けの条件を指定するコピー&ペースト
貼り付けの条件を細かく指定したい場合には、Copy メソッドと PasteSpecial メソッドを使う方法があります。
例えば、値のみ貼り付ける場合は、以下のようにコードを記述します。
' セルをコピー
ThisWorkbook.Worksheets("Sheet1").Cells(4, 2).Copy
' コピーした内容を貼り付け
ThisWorkbook.Worksheets("Sheet1").Cells(4, 4).PasteSpecial Paste:=xlPasteValues
' コピー元セルの周辺に表示される点滅する枠線を消す(カットコピーモードを解除する)
Application.CutCopyMode = False
上記のマクロ実行結果では、コピー元のフォントは赤色ですが、コピー先のフォント黒になっています。
値のみ貼り付けたため、書式の設定等はコピーされていないためです。
コードを上から順に解説していきます。
' セルをコピー
ThisWorkbook.Worksheets("Sheet1").Cells(4, 2).Copy1段落目では、セルをコピーしています。
' コピーした内容を貼り付け
ThisWorkbook.Worksheets("Sheet1").Cells(4, 4).PasteSpecial Paste:=xlPasteValues2段落目では、貼り付け先と、貼り付けのオプションを指定しています。
具体的には、~Cells(4, 4)オブジェクトに PateSpecial メソッドを用いて、貼り付けのオプションを指定しています。
Paste:=xlPasteValues"の部分が、値のみ貼り付けるオプションです。
' コピー元セルの周辺に表示される点滅する枠線を消す(カットコピーモードを解除する)
Application.CutCopyMode = False3段落目では、コピー元セルの周辺に表示される点滅する枠線を消す操作をしています。
このコードを書いておかないと、貼り付け後に、コピー元セルの周辺に点滅する枠線が表示されたままになります。
以上が、Copy メソッドと PasteSpecial メソッドにてコピー&ペーストを行う方法です。
尚、今回は値のみ貼り付ける例でしたが、PasteSpecialには他のオプションもあります。
今回の値のみを貼り付けるオプションも含めて、代表的なオプションを下表に示します。
| Paste:= | 内容 |
| xlPasteAll | すべてを貼り付けます。 |
| xlPasteFomulas | 数式を貼り付けます。 |
| xlPasteValues | 値を貼り付けます。 |
| xlPasteFormats | 書式を貼り付けます。 |

以上で「貼り付けの条件を指定するコピー&ペースト」の解説は終了です。ありがとうございました。
番外編
単純に値だけコピー&ペーストしたい場合は、シンプルに以下のコードでも実現できます。
このコードでは単純に、貼り付け先のセルに、コピー元のセルの値を代入しています。
ThisWorkbook.Worksheets("Sheet1").Cells(4, 4).Value = ThisWorkbook.Worksheets("Sheet1").Cells(4, 2).ValueVBAプログラミングスキルアップのための参考情報
ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。
VBAスキルアップの参考情報
近年は、ChatGPTをはじめとするAIの登場によって、学習のスタイルが大きく変わりました。
分からないことがあれば、AIに尋ねれば答えがすぐに見つかる時代です。
とはいえ、AIを使いこなすには、自分自身の基本的な知識や理解力が欠かせません。
全体像をつかむためには、やはり書籍などで体系的に学んでおくことが今でも有効です。
そのうえでAIを活用すれば、自分の理解度に合わせた的確な解説や、応用のヒントを得ることができます。
「学んで基礎を築く → AIで補い発展させる」──このサイクルを重ねることで、VBAスキルは着実に高まっていくでしょう。
VBAのスキルアップ
VBAを学び始めるなら
入門書は、どれを選んでも大きな差はないように感じます。
どれを選ぶかに悩むことに時間をかけるよりも、まずは手頃な一冊を手に取って進めてみるのがおすすめです。
もし迷ったときには、私はインプレス社の「いちばんやさしい」シリーズを選ぶことが多いです。
基礎を超えて力をつけたいなら
私は上級者を目指していましたので、入門書にとどまらず、このような内容の濃い一冊を選んで学んでいました。
今は誰でもAIを活用できる時代になりましたが、上級者を目指す方にとっては、AIをより上手に活用するという意味でも、こうした本は今なお価値があります。
このレベルの本を一冊持っておくことに、損はないでしょう。
資格で能力を証明したいなら
VBAのプログラミング能力を客観的に示したい場合には「VBAエキスパート試験」があります。
特に「スタンダード」の方は上級者向けです。
あなたが社内業務の改善を行う立場であっても、VBAで作成したシステムをお客様に納める立場であっても、この資格は信頼や安心につながるでしょう。
以下の公式テキストが販売されています。
プログラミングの一般教養
「独学プログラマー」というプログラミングの魅力を解説した書籍があります。
これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。
今はAIにコードを尋ねれば、答えが返ってくる時代です。
しかし、この本からは「コード」以上に、プログラミングに向き合う姿勢や考え方を学ぶことができるでしょう。
こちらの記事でも紹介しています。もしよろしければご覧ください。
【初心者歓迎】無料相談受付中

いつもありがとうございます!
限られた時間をより良く使い、日本の生産性を高めたい──
みんなの実用学を運営するソフトデザイン工房では、業務整理や業務改善アプリケーション作成のご相談を承っております。
お気軽にご相談ください。
こちらの記事でも紹介しております。
おわりに


ご覧いただきありがとうございました。
今回の記事では、セルの基本操作のうち、「セルのコピー&ペースト」を解説しました。
お問い合わせやご要望がございましたら、「お問い合わせ/ご要望」フォームまたはコメント欄よりお知らせください。
この記事が皆様のお役に立てれば幸いです。
なお、当サイトでは様々な情報を発信しております。よろしければトップページもあわせてご覧ください。




