【VBA道場】#4 セルの値だけをコピーする
問題
A1のセルの値だけをB2に貼り付ける。(書式は引き継がない)
完成見本
解答
Sub vba_doujyou_4()
’A1の値をB1へコピーする
Sheets("Sheet1").Range("B1").Value = Range("A1").Value
End Sub
サンプルファイル(マクロ有)
今回のマクロはこちらからダウンロードしてご使用いただけます。
VBA道場4 サンプルファイル(マクロ有)
1 ファイル 14.04 KB
解説
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
|
VBA逆引き大辞典
|