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

アフィリエイト広告を利用しています。
【QRコード】PC<--->スマホの切り替えにご利用ください
運営者・ポテ

いつもありがとうございます。

これは、ノンプログラマー向けのエクセルマクロ・VBA解説シリーズです。

本稿では、セルの基本操作のうち「セルのコピー&ペースト」を解説いたします。

ことばの意味
  • セル
    ワークシートのひとつひとつのマス目のことです。
  • ノンプログラマー
    プログラミングを本職としない人たちのことです。
  • マクロ
    VBAを使って作成される「機能」のことです。
  • VBA
    Visusal Basic for Application の略で、プログラミング言語のことです。
関連記事
筆者の記事関連経験/資格
  • VBA使用経験 約20年
  • Python 3 エンジニア認定基礎試験 合格
    一般社団法人Pythonエンジニア育成推進協会によって運営・認定されている民間資格で、経済産業省が定めたガイドライン「ITスキル標準(ITSS)」において、職種:ソフトウェアディベロップメント、専門分野:応用ソフトのレベル1に掲載されています。

VBAにおける「セルの基本操作」の全体像

マクロを作成するにあたり、セルの操作は何かと必要になります。セルの基本操作の全体像は以下の記事で解説しております。

本稿では、セルの基本操作の一部である「セルのコピー&ペースト」を解説いたします。

VBAで「セルのコピー&ペースト」を行う方法

コピー&ペーストを行う方法には、大きく分けて2つの方法があります。

  1. シンプルなコピー&ペースト
  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)" という値を設定しています。

引数とは、関数やプログラムに渡す値やオブジェクトのことです。

ことばの意味
  1. メソッド
    オブジェクトを操作する命令のことです。
  2. オブジェクト
    VBAで操作する「対象」のことです。

貼り付けの条件を指定するコピー&ペースト

貼り付けの条件を細かく指定したい場合には、Copy メソッドと PasteSpecial メソッドを使う方法があります。

例えば、値のみ貼り付ける場合は、以下のようにコードを記述します。

' セルをコピー
ThisWorkbook.Worksheets("Sheet1").Cells(4, 2).Copy

' コピーした内容を貼り付け
ThisWorkbook.Worksheets("Sheet1").Cells(4, 4).PasteSpecial Paste:=xlPasteValues

' コピー元セルの周辺に表示される点滅する枠線を消す(カットコピーモードを解除する)
Application.CutCopyMode = False
出力結果2
マクロ実行結果

上記のマクロ実行結果では、コピー元のフォントは赤色ですが、コピー先のフォント黒になっています。

値のみ貼り付けたため、書式の設定等はコピーされていないためです。

コードを上から順に解説していきます。

' セルをコピー
ThisWorkbook.Worksheets("Sheet1").Cells(4, 2).Copy

1段落目では、セルをコピーしています。

' コピーした内容を貼り付け
ThisWorkbook.Worksheets("Sheet1").Cells(4, 4).PasteSpecial Paste:=xlPasteValues

2段落目では、貼り付け先と、貼り付けのオプションを指定しています。

具体的には、~Cells(4, 4)オブジェクトに PateSpecial メソッドを用いて、貼り付けのオプションを指定しています。

"Paste:=xlPasteValues" の部分が、値のみ貼り付けるオプションです。

' コピー元セルの周辺に表示される点滅する枠線を消す(カットコピーモードを解除する)
Application.CutCopyMode = False

3段落目では、コピー元セルの周辺に表示される点滅する枠線を消す操作をしています。

このコードを書いておかないと、貼り付け後に、コピー元セルの周辺に点滅する枠線が表示されたままになります。

以上が、Copy メソッドと PasteSpecial メソッドにてコピー&ペーストを行う方法です。

尚、今回は値のみ貼り付ける例でしたが、PasteSpecialには他のオプションもあります。

今回の値のみを貼り付けるオプションも含めて、代表的なオプションを下表に示します。

Paste:=内容
xlPasteAllすべてを貼り付けます。
xlPasteFomulas数式を貼り付けます。
xlPasteValues値を貼り付けます。
xlPasteFormats書式を貼り付けます。
PasteSpecial の代表的なオプション

番外編

単純に値だけコピー&ペーストしたい場合は、シンプルに以下のコードでも実現できます。

このコードでは単純に、貼り付け先のセルに、コピー元のセルの値を代入しています。

ThisWorkbook.Worksheets("Sheet1").Cells(4, 4).Value = ThisWorkbook.Worksheets("Sheet1").Cells(4, 2).Value

おわりに

運営者・ポテ

ご覧いただきありがとうございました。

今回の記事では、セルの基本操作のうち、「セルのコピー&ペースト」を解説いたしました。

お問い合わせやご要望等ございましたら、「お問い合わせ/ご要望」またはコメントにて、ご連絡いただければ幸いでございます。

少しでも皆様の人生に変化をもたらすきっかけとなれば幸いでございます。

VBAプログラミングスキルアップのための参考情報

ここでは参考図書を紹介いたしますが、これらに限らず自分に合うものを選ぶことが重要だと考えております。皆様の、より一層のご成功を心よりお祈りしております。

VBAプログラミングのスキルアップ

学習用としてもハンドブックとしても役立つ便利な書籍がこちらです。価格はやや高めですが、その内容は非常に充実しています。相応のスキルを身に付けるためには、こうしたしっかりとした書籍を一冊持っておくと良いでしょう。



入門書に関しては、どの書籍も大きな違いはありません。あまり迷うことに時間をかけるより、手頃なものを一冊選んでみると良いでしょう。VBAの入門書は数多く出版されていますので、興味がある方はぜひチェックしてみてください。

私は、迷った場合は、インプレス社の「いちばんやさしい」シリーズを購入することが多いです。

>>Amazon で VBA の書籍をでチェックする

>>楽天市場 で VBA の書籍をチェックする

>>Yahoo!ショッピングでVBAの書籍をチェックする


VBAのプログラミング能力を客観的に証明したい場合には「VBAエキスパート試験」があります。この試験はVBAの知識を公式に認定するものです。VBAの総合的な能力獲得を目指す方に適しています。以下の公式テキストが販売されております。



プログラミングの一般教養

「独学プログラマー」というプログラミングの魅力を解説した書籍があります。これはVBAではなくPythonを題材としていますが、プログラミングの基本的な知識や思考法、仕事の進め方まで幅広く学べます。


こちらの記事でも紹介しております。もしよろしければご覧ください。

【QRコード】PC<--->スマホの切り替えにご利用ください

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です