【VBA道場】#4 セルの値だけをコピーする

ExcelVBA

【VBA道場】#4 セルの値だけをコピーする



問題

A1のセルの値だけをB2に貼り付ける。(書式は引き継がない)

 

完成見本

 

解答

Sub vba_doujyou_4()

  ’A1の値をB1へコピーする
  Sheets("Sheet1").Range("B1").Value = Range("A1").Value

End Sub

サンプルファイル(マクロ有)

今回のマクロはこちらからダウンロードしてご使用いただけます。

 

解説

object.value = object.value
object—対象となるRangeオブジェクト

セルの値だけをコピーする場合は「形式を選択して貼付け」→「値だけを貼り付ける」とうい機能があります。
これをマクロの記録で記録してみると

Sub vba_doujyou_4_1()

 Range("A1").Select
 Selection.Copy
 Range("B1").Select
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
 :=False, Transpose:=False

End Sub

このように表示されます。
しかし、これでは引数が多くとても複雑です。

発想を変えてシンプルに考えてみましょう。
セルの値だけコピーするということは、セルの値を別のセルに代入するのと同じ事です。

つまり「Range(“B1”) = Range(“A1”)」のようにシンプルに表現が可能です。

複数のセルを同時にコピーする場合は次のようにコードを書きます。

Sub vba_doujyou_4()

 Sheets("Sheet1").Range("B1:B3").Value = Range("A1:A3").Value

End Sub

 

おわりに

マクロの記録だけに頼るのではなく、発想を転換して考えてみましょう!
今日はここまで!

 

おすすめ参考書

Amazon

たった1秒で仕事が片付くExcel自動化の教科書

いちばんやさしいExcelVBAの教本

ExcelVBA逆引き辞典 パーフェクト

 

楽天

いちばんやさしいExcelVBA

 

 

すらすら読めるExcelVBA

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

スラスラ読めるExcel VBAふりがなプログラミング [ リブロワークス ]
価格:2035円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

 

VBA逆引き大辞典

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

Excel VBA逆引き辞典パーフェクト第3版 [ 田中亨 ]
価格:2838円(税込、送料無料) (2021/4/22時点)

楽天で購入

 

 

タイトルとURLをコピーしました