ALL EXCEL Program VBA

【解説付】VBA-コピー/貼付をする方法【EXCEL VBA】

本記事で出来ること

本記事では以下のことが分かります。
 
-分かること-
VBAでコピー/貼付する方法が分かります

本記事の信頼性

本投稿で紹介するコードや内容は、
Crowd Worksで実際に納品したVBAコードを元に説明しているので
ご安心して 内容を確認ください。

前準備:プロパティ構文とメソッド構文は理解しているか?

仰々(ぎょうぎょう)しい見出しですが、内容は簡単です。
 
図を用意しましたので、眺めてもらえれば良いかと。
 
例として「A1セルをコピー → B1セルに貼付」をもとに、
各構文の比較をしているので 理解していない人はこのタイミングで理解しておきましょう。
 
 
作用させる向きが それぞれ逆なところがポイントです。
(ポイント:プロパティ構文は 右から左、メソッド構文は 左から右へ作用する)
 

コピー/貼付のやり方(コード有)

「A1セルをコピーしてB1セルに貼付する」を例にコードを紹介します。
 
構文によって書き方が異なりますので、注意しましょう。
 
 
◎プロパティ構文の場合
  

Sub プロパティ構文の場合()
 
   Range("B1").Value = Range("A1").Value
 
  '↓これも同じ意味
  'Cells(1,2).value = Cells(1,1).value
 
End Sub

 
◎メソッド構文の場合
 

Sub メソッド構文の場合()
 
   Range("A1").Copy Range("B1")
 
  '↓これも同じ意味
  ' Cells(1,1).Copy Cells(1,2)
 
End Sub

 

余談:CellsとRangeの理解が曖昧な人向け

ご紹介したコードの中に Range("A1") と Cells(1,1) が同じ扱いをされていますが、
曖昧に理解している人はいませんでしょうか?
 
セルの特定は、VBAで作業効率化するにおいて、
原点にして頂点の 最重要-理解すべき基本知識の1つです。
 
以下の記事に、CellsとRangeの説明をしているので、
不安に思われた方は リンク先で確認して下さいませ。
(早い人は 5分で読めると思います。)
 

終わりに

いかがでしたでしょうか。

 

こんなこと言ったら 信頼性に問題がありますが、
プログラムなんてものは、まずは 動きゃいい と僕は思っています。
 
動くのが確認できて 初めて「良かった。うれしいー」となり、
プログラム学習を継続しようと思えるわけで。
 
そこから、エラー分岐や動作の安定性/高速化を目指してトライ&エラーが始まり、
終わりのない Input(勉強)→Output(コーディング)の世界に飛び込むわけですから、
初めの動いた時ぐらい喜んでもバチは当たらないと思います。
 
 
こちらは宣伝になりますが、
もしVBA全般のルール・基本知識を身に付けたい方がいらっしゃいましたら、
本ブログでは「1週間で分かるVBA 」 なる記事もご紹介していますので、
一度 覗いてみてくれると幸いです。(当然、無料です。)




-ALL, EXCEL, Program, VBA
-, , , ,