凡人も語りたい

VBAに関すことや日々考えている事柄について投稿しようと思っています。

VBA 100本ノックNo1~5

お題と回答

Sub ノック1本目()
    Sheet1.Range("A1:C5").Copy
    Sheet2.Range("A1").PasteSpecial
End Sub

Sub ノック2本目()
    Sheet1.Range("A1:C5").Copy
    Sheet2.Range("A1").PasteSpecial (xlPasteValuesAndNumberFormats)
End Sub

Sub ノック3本目()
    ActiveSheet.Range(Cells(2, 2), Cells(Rows.Count, Columns.Count)).ClearContents
End Sub

Sub ノック4本目()
    ActiveSheet.Range(cells(2, 2), cells(Rows.Count - 1, Columns.Count - 1)).ClearContents
End Sub

Sub ノック5本目()
With ActiveSheet
    Dim c As Long: c = .cells(Rows.Count, 2).End(xlUp).Row
    Dim i As Long
 For i = 3 To c
  If Not (.cells(i, 2).Value = "" Or .cells(i, 3).Value = "") Then
   .cells(i, 4).Value = .cells(i, 2).Value * .cells(i, 3).Value
           .cells(i, 4).NumberFormat = "\\#,##0"
     End If
 Next
End With
End Sub

感想と振り返り

賞味30分。
5本目について最初にFormat関数を使ってしまったことで文字列扱いになってしまい、手間取った。
基本的なもので難しい操作とかはないけど、Rangeクラスのプロパティとメソッドがうろ覚えで全然使い切れていないと実感。
精進あるのみ。