VBA超初心者

今日はVBAの勉強。勉強し始めてもうすぐ1年というのに理解がかなり遅いです。

休日に1時間弱の勉強、それもやったりやらなかったりなので...

 

今までの勉強の流れとしては

たてばやし 淳 さんの『Excel VBA 脱初心者のための集中講座』を一通り終えて、

サイトExcelとVBAの入門解説|エクセルの神髄の練習問題を進めてます。

 

今日やったのはコチラ。練習問題6(変数を使っての合計の練習)|VBA練習問題

 

自力で出来なかったのは以下

1,金額の合計値を最終行の一行下に計算すること

2,合計値の出し方

 

調べた結果

最終行の一行下は

n = Cells(Rows.Count, "B").End(xlUp).Row + 1

これで追加できるらしい。

 

合計値は調べても関数を利用するものしかhitせず、解答をみました。

lngTotalをつくり、初期値を0にする。

そこにCells(i, "D")をどんどん足していく方法みたいでした。

 

 

私が書いたコードはこちら

 

 

Option Explicit

Sub 合計金額()

    Dim i As Long
    Dim lastRow As Long
    Dim n As Long
    Dim lngtotal As Long
    
    n = Cells(Rows.Count, "D").End(xlUp).Row + 1
    lngtotal = 0
    lastRow = Cells(Rows.Count, 1).End(xlUp).Row
        
        For i = 2 To lastRow
        
        Cells(i, "D") = Cells(i, "B") * Cells(i, "C")
        lngtotal = lngtotal + Cells(i, "D")
        
        Next i
        Cells(n, "D") = lngtotal

End Sub

なんとも不格好。恥ずかしい。いつか笑い話にできるように証拠残しときます。

 

最終行の1行下にデータを追加する方法は、模範解答では

Cells(lastRow + 1, 4) = lngTotal

なんともシンプル。

自分の発想力のなさが恥ずかしい。

 

精進します。